Erreur 404 - Impossible d'accéder au backend après le déplacement vers un nouveau serveur


9

J'ai déplacé mon site Web sur un nouveau serveur (le nom de domaine est le même). Le frontend fonctionne correctement mais la page de connexion administrateur donne une 404 Not Founderreur.

La plupart des articles sur ce problème suggèrent les solutions mentionnées dans cet article. Transfert du site Web Magento, l'URL du panneau d'administration donne 404

Je les ai tous essayés mais rien n'a fonctionné. Y a-t-il autre chose que je pourrais faire pour résoudre ce problème?

Réponses:


16

La raison de cette erreur est que store_id et website_id pour admin doivent être définis sur 0 (zéro). Mais, lorsque vous importez une base de données vers un nouveau serveur, ces valeurs ne sont en quelque sorte pas définies sur 0.

Ouvrez PhpMyAdmin et exécutez la requête suivante dans votre base de données: -

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;

Sauvegardez la base de données avant d'apporter des modifications. Consultez également le fichier journal pour trouver le problème exact. Vous pouvez également vous référer au lien 404 erreur d'administration de magento J'espère que cela vous sera utile


1
Salut, je l'ai déjà fait, mais cela n'a pas fonctionné.
zekia

Désolé pour ça ...
Bhargav Mehta

Le lien suggère la même solution que vous avez mentionnée et j'ai également effacé le cache. Toujours pas réparé
zekia

4

J'ai moi-même rencontré quelques choses qui pourraient causer cela

  • assurez-vous que le .htaccess est en place dans le répertoire racine
  • assurez-vous qu'il mod_rewriteest activé sur le nouveau serveur
  • vérifier les URL de base dans le core_config_datatableau
  • assurez-vous que la mise en cache est désactivée ou actualisée
  • vérifier le propriétaire du fichier et les autorisations des fichiers

2

Vous devez aller directement sur votre serveur et le faire via SSH / FTP

Vous devez supprimer le fichier suivant

 app/etc/use_cache.ser

Si vous obtenez une erreur après cela, comme

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

Accédez ensuite à votre gestion de base de données.

Ouvrez PhpMyAdmin Accédez à votre base de données Cliquez sur SQL Exécutez la requête SQL suivante: _

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;

Une chose étrange se produit avec le cache lorsque vous déplacez les bases de données d'un serveur à un autre, il semble donc que vous deviez le vider.


salut vérifier Cette solution?
Nikunj Vadariya

2

ESSAYEZ CECI ..re importez votre base de données pour sauvegarder votre base de données ajoutez la ligne ci-dessous en haut du fichier .sql. Cela empêchera SQL d'attribuer automatiquement l'ID de 1 lorsque nous en aurons besoin à 0.

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

si aucun succès, vérifiez ce lien également après avoir essayé celui mentionné ci-dessus Magento 404 sur la page d'administration


2

Ouvrez PhpMyAdminet exécutez la requête suivante dans votre base de données

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;

puis supprimez deux dossiers de file manager->var -> cache & session


1
Contrairement à d'autres suggestions, c'était le bon processus que je devais exécuter. La requête fonctionne pour accéder mais j'ai encore dû effacer les 2 autres dossiers.
aknatn

1

ajoutez-les simplement dans .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>

1

Nous avons déplacé les serveurs à plusieurs reprises et à chaque fois, nous avons rencontré des problèmes identiques ou similaires. Nous avons fait un script catch all que nous exécutons sur chaque nouveau serveur et cela a fonctionné pour résoudre tous nos problèmes pour les deux dernières migrations, vous pouvez essayer! Le problème a généralement été lié au fait que l'ancienne URL est bloquée ou mise en cache quelque part ou qu'une autorisation est hors de contrôle.

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 ..

0

Vous pouvez également essayer d'ajouter index.php à l'url comme ceci:

https://website.test/index.php/admin
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.