Magento 2 Admin Diese Webseite hat eine Umleitungsschleife


26

Magento 2 wurde erst gestern Abend veröffentlicht und ich kann es kaum erwarten, daran zu arbeiten. Ich habe versucht, es mit allen Voraussetzungen zu installieren.

Das Frontend funktioniert einwandfrei, aber als ich versuchte, das Backend zu öffnen, heißt es "Diese Webseite hat eine Umleitungsschleife". Magento hat "admin_r2sxkn" als eindeutige Backend-URL erstellt. Meine Admin-URL lautet http: // localhost / magento2 / admin_r2sxkn

Als Lösung habe ich versucht, den Cache zu löschen, was nicht funktioniert hat.

PS Ich habe xampp auf dem Mac, mit den neuesten Versionen von PHP und MySQL, installiert PHP-Erweiterung inkl. Nach Bedarf.

Jede Hilfe wäre dankbar.

Bildbeschreibung hier eingeben

Antworten:


17

Browser unterstützen keine Cookies auf Top-Level-Domains wie localhost. Bitte installieren Sie Magento neu auf einem anderen Hostnamen (zB magento.dev).

Magento unterstützt auch nur Linux. Also besser Vagrant für die Entwicklung verwenden. Sie können jede vorhandene vorkonfigurierte vagabundierende Instanz verwenden , die alle für Sie arbeitet


Magento unterstützt nur Linux?
Bhargav Nanekalva


Es kann auf Linux-ähnlichen Betriebssystemen wie macOS funktionieren (viele Leute tun dies für die Entwicklung; siehe zum Beispiel github.com/weprovide/valet-plus ). Es wird jedoch nicht offiziell unterstützt, sodass es zu unerwarteten Inkompatibilitäten kommen kann.
Scott Buchanan

22

In meinem Fall habe ich eine bereits vorhandene Magento 2-Datenbank importiert. Der Grund, warum ich den Fehler erhalten habe, war die Cookie-Domain in der Datenbank. Gehen Sie zu Ihrer Datenbank und sehen Sie in der Tabelle nach core_config_data. Sie sollten einen Pfad sehen, der aufgerufen wird web/cookie/cookie_domain. Stellen Sie sicher, dass die Domain mit der übereinstimmt, auf der Sie Magento 2 installiert haben. Beispiel: Wenn Sie Magento 2 installiert haben, sollte local.dev/<magento-root> der Eintrag in web/cookie/cookie_domainsein local.dev.


Dies war auch mein Problem ...
Giel Berkers

das ist Mail-Grund
Amit Bera

1
Wählen Sie * aus core_config_data, wobei der Pfad "web /%" lautet.
David

11

Problem mit Umleitungsschleife in Magento2 mit einem gültigen Domainnamen nach dem Wechsel zu https.

Überprüfen Sie web/secure/use_in_adminhtmlund web/secure/use_in_frontendEinstellungen in core_config_data, sollten beide auf festgelegt werden 1.


Danke, elene, du hast unsere verdammte Zeit gerettet. es hat bei mir funktioniert. Abfrage, um Werte zu sehen:select * from core_config_data where path like 'web/%';
Shahzaib Hayat Khan

Genau das habe ich gebraucht. Wenn dies über die Befehlszeile bequemer ist, als Datensätze in der Datenbank zu bearbeiten, ist dies auch magento config:set web/secure/use_in_adminhtml 1undmagento config:set web/secure/use_in_frontend 1
Colin

9

Während der Installation von Magento2 auf Ihrem Localhost versuchen Sie, 127.0.0.1 in der Adresse Ihres Shops in Schritt 3 anstelle des Localhost zu verwenden. Jetzt können Sie in der Tabelle core_config_data die folgenden 2 Zeilen ändern

web/unsecure/base_url to http://127.0.0.1/magento2/
web/secure/base_url to https://127.0.0.1/magento2/

Cache leeren und jetzt prüfen

Bearbeitet: -

Versuchen Sie während der Installation in Schritt 3, 127.0.0.1 in Ihrer Geschäftsadresse zu speichern, wie im Screenshot gezeigt

Bildbeschreibung hier eingeben


Ich habe die gleichen Änderungen vorgenommen, Magento2-Administrator arbeitet jetzt mit Firefox, aber nicht mit Chrome, ich lösche auch den Cache, aber kein Ergebnis
Dinesh

5

Ich hatte eine Domain mit der Form local.abc_def.com und hatte dieses Problem.

Ich habe den Unterstrich in der Domain in einen Bindestrich geändert, was zu einer Domain von local.abc-def.com führte. Dies hat das Problem für mich behoben


4

Kann in \ Magento \ Backend \ Controller \ Adminhtml \ Auth \ Login :: execute debuggt werden

Zum Beispiel mit

    $requestUrl = $this->getRequest()->getUri();
    $backendUrl = $this->getUrl('*');
    // redirect according to rewrite rule
    echo (string)$requestUrl . ' != ' . $backendUrl;
    die();

Es ist gestorben und die URLs sind unterschiedlich, dies gibt einen Hinweis auf das Problem.


Ich habe fast das gleiche Problem wie das OP, aber die Überprüfung dieser Variablen wirft nur weitere Fragen auf - die beiden URLs stimmen nie überein, da der Schlüssel jedes Mal unterschiedlich ist. Wenn ich versuche, eine URL ohne Schlüssel zu laden (nur admin/zum Beispiel), prüft sie dies gegen die URL mit einem Schlüssel und leitet ... zu einer anderen URL mit einem Schlüssel weiter, der gegen eine URL geprüft wird, die dann einen anderen Schlüssel hat?
James

Richtig, scheint ein Fehler / eine Fehlkonfiguration bei der Verwendung einer benutzerdefinierten Administrator-URL zu sein - das Zurücksetzen auf "admin" in env.php hat das Problem behoben!
James

2

Versuchen Sie, den Ordner var / cache zu bereinigen. Es hilft mir.


das hat mir als letzten lebensversuch geholfen .. danke @karick
Ask Bytes

0

Ich habe eine bessere Lösung, um das oben genannte Problem zu beheben.

Öffnen Sie die .htaccess- Datei

Finde die Linie

 #RewriteBase / magento /

Kommentieren Sie die Zeile entsprechend Ihrem Problem als

  RewriteBase / magento2 /  

Hinweis: Speichern Sie die .htaccess-Datei. Bereinigen Sie den gesamten var / cache- und Browser-Cache.


0

Vor der Installation müssen Sie einen gültigen Domainnamen auswählen. Zum Beispiel: www.magento2-test.devstattdessen localhost. Weitere Details zu dieser Ausgabe finden Sie hier


0

Verwendung localhostals tatsächliche Top-Level-Domain anstelle von Standalone, und Sie sollten in der Lage sein, dies zu verwalten. Verwenden .devist keine gute Idee, wie in diesem Artikel erläutert: https://iyware.com/dont-use-dev-for-development/

http://magento.localhost/Wäre es angemessen, oder wenn Sie welche haben DOMAIN.com, für die es später bereitgestellt wird, können Sie DOMAIN.localhostdiese später auf DOMAIN.com ausführen und dann Ihren Webserver so codieren, dass er unabhängig von der von Ihnen verwendeten TLD nach dem Hostnamen sucht.

Beispiel: Wenn Sie zwei Geschäfte auf DOMAIN1.com und DOMAIN2.com haben, geben Sie Ihre Regeln in nginx conf (oder einem beliebigen Webserver Ihrer Wahl) ein, DOMAIN1.*um den Code für DOMAIN1-spezifischen Code auszuwerten. Apache verwenden Sie möglicherweise so etwas wie SetEnvIf Host DOMAIN1\.(localhost|com)$ VAR=valin Ihrer .htaccessDatei.


0

In einigen Szenarien kann var/cachedieses Problem durch Löschen der für die Magento2-Installation spezifischen Cookies und Löschen der Magento-Cache-Dateien behoben werden.


0

Sie sollten var / cache / * löschen und den Befehl setup: static-content: deploy ausführen. es sollte funktionieren. Ich habe dieses Problem auf meinem localhost mit dem obigen Schritt gelöst


0

Nach dem Umschalten von http auf https müssen die folgenden Werte in der Tabelle core_config_data aktualisiert werden.

UPDATE core_config_data SET value = REPLACE(value, '0', '1') WHERE path = 'web/secure/use_in_frontend';

UPDATE core_config_data SET value = REPLACE(value, '0', '1') WHERE path = 'web/secure/use_in_adminhtml';

Löschen Sie dann die Caches und laden Sie die Admin-URL neu.


0

Ich habe 8 Stunden mit dem Thema verbracht, hier sind meine Schlussfolgerungen

1) setze AllowOverride all bei der Konfiguration des Apache-Verzeichnisses, zumindest um die .htaccess-Datei zu erhalten, um sie zu überprüfen. Der Magento-Ordner ist die universelle Lösung, um das Frontoffice und das Backoffice zum Laufen zu bringen

2) setze RewriteBase / in .htaccess oder einen Unterordner wenn localhost / magento

3) Stellen Sie sicher, dass Sie https als Administratorpfad verwenden, falls sich diese Anforderungen als nützlich erweisen sollten (andernfalls wird das Administrator-Cookie überhaupt nicht gesetzt):

d = magento.yourdomain.localhost ;

mysql -ua -pb -e "UPDATE magento.core_config_data SET value = ' https : // $ d /' WHERE-Pfad in ('web / secure / base_url')";

mysql -ua -pb -e "UPDATE magento.core_config_data SET value = 1 WHERE-Pfad in (' web / secure / use_in_adminhtml ')"

PHP bin / Magento Cache: Flush

4) Das ist alles, ich habe alle falschen Vermutungen aus diesem Beitrag entfernt, da sie auf den ersten Blick viel waren.



0

Beachten Sie auch, dass Ihre Webserver-Engine (nginx / apache) den SSL-Port 443 überwacht und dass Sie Zertifikate konfiguriert haben. Dies war das Problem für mich zusammen mit Ratschlägen, die bereits in anderen Antworten genannt wurden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.