Error 404: no se puede acceder al backend después de pasar al nuevo servidor

9

He movido mi sitio web a un nuevo servidor (el nombre de dominio es el mismo). Frontend funciona correctamente pero la página de inicio de sesión de administrador muestra un 404 Not Founderror.

La mayoría de las publicaciones sobre este problema sugieren las soluciones mencionadas en esta publicación Transferencia del sitio web de Magento, la URL del panel de administración proporciona 404

Los he probado todos pero nada funcionó. ¿Hay algo más que pueda hacer para arreglar esto?

zekia
fuente

Respuestas:

16

La razón de este error es que store_id y website_id para admin deben establecerse en 0 (cero). Pero, cuando importa la base de datos al nuevo servidor, de alguna manera estos valores no se establecen en 0.

Abra PhpMyAdmin y ejecute la siguiente consulta en su base de datos: -

SET FOREIGN_KEY_CHECKS=0;
UPDATE `core_store` SET store_id = 0 WHERE code='admin';
UPDATE `core_store_group` SET group_id = 0 WHERE name='Default';
UPDATE `core_website` SET website_id = 0 WHERE code='admin';
UPDATE `customer_group` SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;

Haga una copia de seguridad de la base de datos antes de realizar cualquier cambio; también vea el archivo de registro para encontrar el problema exacto. También puede consultar el enlace 404 error de administrador de magento Espero que esto sea útil para usted

Bhargav Mehta
fuente
1
Hola, ya lo hice, pero no funcionó.
zekia
Lo siento por eso ...
Bhargav Mehta
El enlace sugiere la misma solución que mencionaste y también borré el caché. Sin embargo, aún no se ha solucionado
zekia
4

Me he encontrado con un par de cosas que podrían causar esto

  • asegúrese de que el .htaccess esté en su lugar en el directorio raíz
  • asegúrese de que mod_rewriteesté habilitado en el nuevo servidor
  • verifique las URL base en la core_config_datatabla
  • asegúrese de que el almacenamiento en caché esté apagado o actualizado
  • verificar el propietario del archivo y los permisos de los archivos
Sander Mangel
fuente
2

Debe ir a su servidor directamente y hacerlo a través de SSH / FTP

Tienes que eliminar el siguiente archivo

 app/etc/use_cache.ser

Si obtiene un error después de eso, como

 Notice: Undefined index: 0 in /srv/www/vhosts/javra.com/htdocs/munchad2/app/code/core/Mage/Core/Model/Mysql4/Config.php on line 92

Luego vaya a su Gestión de base de datos.

Abra PhpMyAdmin Vaya a su base de datos Haga clic en SQL Ejecute la siguiente consulta SQL: _

SET FOREIGN_KEY_CHECKS=0;
UPDATE `core_store` SET store_id = 0 WHERE code='admin';
UPDATE `core_store_group` SET group_id = 0 WHERE name='Default';
UPDATE `core_website` SET website_id = 0 WHERE code='admin';
UPDATE `customer_group` SET customer_group_id = 0 WHERE     customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;

Algo extraño sucede con el caché cuando mueve las bases de datos de un servidor a otro, por lo que parece que necesita borrarlo.

Nikunj Vadariya
fuente
hola revisa esta solución?
Nikunj Vadariya
2

PRUEBE ESTO ... importa su copia de seguridad de db en su base de datos, agregue la siguiente línea en la parte superior del archivo .sql. Esto evitará que SQL asigne automáticamente la identificación de 1 cuando necesitemos que sea 0.

/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */

si no tiene éxito, compruebe este enlace también después de probar el Magento 404 mencionado anteriormente en la página de administración

Dhanasekar
fuente
2

Abra PhpMyAdminy ejecute la siguiente consulta en su base de datos

SET FOREIGN_KEY_CHECKS=0;
UPDATE `core_store` SET store_id = 0 WHERE code='admin';
UPDATE `core_store_group` SET group_id = 0 WHERE name='Default';
UPDATE `core_website` SET website_id = 0 WHERE code='admin';
UPDATE `customer_group` SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;

luego elimine dos carpetas de file manager->var -> cache & session

Anto sujesh
fuente
1
A diferencia de otras sugerencias, este fue el proceso correcto que necesitaba ejecutar. La consulta funciona para obtener acceso, pero aún tuve que borrar las otras 2 carpetas.
aknatn
1

solo agregue estos en .htaccess

<IfModule mod_rewrite.c>

############################################
## Enable rewrites

    Options +FollowSymLinks
    RewriteEngine on

############################################
## You can put here your magento root folder
## path relative to web root

    #RewriteBase /magento/

############################################
## Workaround for HTTP authorization
## in CGI environment

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

############################################
## TRACE and TRACK HTTP methods disabled to prevent XSS attacks

    RewriteCond %{REQUEST_METHOD} ^TRAC[EK]
    RewriteRule .* - [L,R=405]

############################################
## Never rewrite for existing files, directories and links

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

############################################
## Rewrite everything else to index.php

    RewriteRule .* index.php [L]

</IfModule>
zeshan rahman
fuente
1

Hemos movido servidores varias veces y cada vez hemos tenido los mismos problemas o problemas similares. Hemos realizado una captura de todos los scripts que ejecutamos en cada nuevo servidor y ha funcionado para solucionar todos nuestros problemas durante las últimas dos migraciones, ¡puede intentarlo! El problema generalmente se debe a que la antigua URL está atascada o almacenada en caché en algún lugar o un permiso no funciona.

rm -rf var/cache
rm -rf var/full_page_cache/
rm -rf media/catalog/product/cache
rm -rf var/session/*
php shell/indexer.php --reindexall
chown -R apache .
systemctl restart mysqld
systemctl restart httpd 

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
find feeds -type f -exec chmod 644 {} \;
chmod 777 var -R
chmod 777 media -R
chcon -R -t httpd_sys_rw_content_t .
chcon -Rv --type=httpd_sys_content_t ..
Nick P
fuente
0

También puede intentar agregar index.php a la url de esta manera:

https://website.test/index.php/admin
TheKitMurkit
fuente