Fehler 404 - Nach dem Wechsel auf einen neuen Server kann nicht auf das Backend zugegriffen werden

9

Ich habe meine Website auf einen neuen Server verschoben (Domainname ist der gleiche). Das Frontend funktioniert ordnungsgemäß, aber die Administrator-Anmeldeseite gibt einen 404 Not FoundFehler aus.

Die meisten Beiträge zu diesem Problem schlagen die in diesem Beitrag erwähnten Lösungen vor. Beim Übertragen der Magento-Website gibt die URL des Admin-Panels 404 an

Ich habe alle ausprobiert, aber nichts hat funktioniert. Kann ich noch etwas tun, um das zu beheben?

Zekia
quelle

Antworten:

16

Der Grund für diesen Fehler ist, dass store_id und website_id für admin auf 0 (Null) gesetzt werden sollten. Wenn Sie jedoch eine Datenbank auf einen neuen Server importieren, werden diese Werte nicht auf 0 gesetzt.

Öffnen Sie PhpMyAdmin und führen Sie die folgende Abfrage in Ihrer Datenbank aus: -

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;

Sichern Sie die Datenbank, bevor Sie Änderungen vornehmen. Weitere Informationen finden Sie in der Protokolldatei. Sie können auch auf den Link 404 Magento Admin-Fehler verweisen . Ich hoffe, dies ist hilfreich für Sie

Bhargav Mehta
quelle
1
Hallo, das habe ich schon gemacht, aber nicht funktioniert.
Zekia
Entschuldigung dafür ...
Bhargav Mehta
Der Link schlägt dieselbe Lösung vor, die Sie erwähnt haben, und ich habe auch den Cache geleert. Immer noch nicht behoben
Zekia
4

Ich bin selbst auf ein paar Dinge gestoßen, die dies verursachen könnten

  • Stellen Sie sicher, dass der .htaccess im Stammverzeichnis vorhanden ist
  • Stellen Sie sicher, dass mod_rewriteauf dem neuen Server aktiviert ist
  • Überprüfen Sie die Basis-URLs in der core_config_dataTabelle
  • Stellen Sie sicher, dass das Caching deaktiviert oder aktualisiert ist
  • Überprüfen Sie den Dateieigentümer und die Berechtigungen der Dateien
Sander Mangel
quelle
2

Sie müssen direkt zu Ihrem Server gehen und dies über SSH / FTP tun

Sie müssen die folgende Datei löschen

 app/etc/use_cache.ser

Wenn du danach einen Fehler bekommst wie

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

Gehen Sie dann zu Ihrer Datenbankverwaltung.

Öffnen Sie PhpMyAdmin. Gehen Sie zu Ihrer Datenbank. Klicken Sie auf SQL. Führen Sie die folgende SQL-Abfrage aus: _

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;

Mit dem Cache passiert etwas Seltsames, wenn Sie die Datenbanken von einem Server auf einen anderen verschieben, sodass Sie sie anscheinend löschen müssen.

Nikunj Vadariya
quelle
hi check Diese Lösung?
Nikunj Vadariya
2

VERSUCHEN SIE DIESES .. importieren Sie Ihre Datenbank und sichern Sie Ihre Datenbank. Fügen Sie die folgende Zeile oben in die SQL-Datei ein. Dies verhindert, dass SQL automatisch die ID 1 zuweist, wenn sie 0 sein muss.

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

Wenn dies nicht gelingt, überprüfen Sie diesen Link auch, nachdem Sie das oben erwähnte Magento 404 auf der Admin-Seite ausprobiert haben

Dhanasekar
quelle
2

Öffnen Sie PhpMyAdmindie folgende Abfrage und führen Sie sie in Ihrer Datenbank aus

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;

Entfernen Sie dann zwei Ordner aus file manager->var -> cache & session

Anto Sujesh
quelle
1
Im Gegensatz zu anderen Vorschlägen war dies der richtige Prozess, den ich ausführen musste. Die Abfrage funktioniert, um Zugriff zu erhalten, aber ich musste immer noch die anderen 2 Ordner löschen.
Aknatn
1

Fügen Sie diese einfach in .htaccess hinzu

<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
quelle
1

Wir haben einige Male Server gewechselt und jedes Mal hatten wir die gleichen oder ähnliche Probleme. Wir haben ein Skript für alle Skripte erstellt, die wir auf jedem neuen Server ausführen, und es hat funktioniert, um alle unsere Probleme für die letzten beiden Migrationen zu beheben. Sie können es ausprobieren! Das Problem lag normalerweise darin, dass die alte URL irgendwo feststeckte oder zwischengespeichert wurde oder eine Erlaubnis aus dem Ruder gelaufen ist.

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

Sie können auch versuchen, der URL wie folgt index.php hinzuzufügen:

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