Administrator Magento 2 ta strona ma pętlę przekierowań

26

Magento 2 właśnie wypuszczono zeszłej nocy i nie mogę się doczekać, aby nad tym popracować. Próbowałem zainstalować go ze wszystkimi warunkami wstępnymi.

Frontend działa dobrze, ale kiedy próbowałem otworzyć backend, mówi „ta strona ma pętlę przekierowań”. Magento utworzył „admin_r2sxkn” jako unikalny adres URL zaplecza. Mój adres URL administratora to http: // localhost / magento2 / admin_r2sxkn

Jako rozwiązanie próbowałem usunąć pamięć podręczną, która nie działała.

PS Mam Xampp na Mac, z najnowszymi wersjami PHP i MySql, zainstalowane rozszerzenie PHP w razie potrzeby.

Każda pomoc będzie mile widziana.

wprowadź opis zdjęcia tutaj

Harit
źródło

Odpowiedzi:

17

Przeglądarki nie obsługują plików cookie w domenach najwyższego poziomu, takich jak localhost. Zainstaluj ponownie Magento na innej nazwie hosta (np. Magento.dev).

Ponadto Magento obsługuje tylko system Linux. Lepiej więc użyć Vagrant do programowania. Możesz użyć dowolnej istniejącej wstępnie skonfigurowanej instancji, która działa dla Ciebie

KAndy
źródło
Magento obsługuje tylko Linux?
Bhargav Nanekalva
Może działać na systemach operacyjnych podobnych do systemu Linux, takich jak macOS (wiele osób robi to w celu programowania; patrz na przykład github.com/weprovide/valet-plus ). Nie jest to jednak oficjalnie obsługiwane, więc mogą wystąpić nieoczekiwane niezgodności.
Scott Buchanan
22

W moim przypadku importowałem już istniejącą bazę danych Magento 2. Przyczyną tego błędu był domena plików cookie w bazie danych. Przejdź do bazy danych i zajrzyj do tabeli core_config_data. Powinieneś zobaczyć ścieżkę o nazwie web/cookie/cookie_domain. Upewnij się, że domena jest zgodna z domeną, na której zainstalowałeś Magento 2. Przykład: Jeśli zainstalowałeś Magento 2 na local.dev/<magento-root> wejściu web/cookie/cookie_domainpowinno być local.dev.

Paweł
źródło
To też był mój problem ...
Giel Berkers,
to jest powód poczty
Amit Bera
1
wybierz * z core_config_data gdzie ścieżka jak „web /%”;
David
11

Wystąpił problem z pętlą przekierowań na Magento2 z prawidłową nazwą domeny po przełączeniu na https.

Sprawdź web/secure/use_in_adminhtmli web/secure/use_in_frontendustawienia core_config_data, oba powinny być ustawione na 1.

Elena
źródło
Dziękuję Elene, że uratowałaś nam piekło czasu. zadziałało dla mnie. zapytanie, aby zobaczyć wartości:select * from core_config_data where path like 'web/%';
Shahzaib Hayat Khan
Właśnie tego potrzebowałem. Ponadto, jeśli wygodniej jest to zrobić z wiersza polecenia niż edytować rekordy w bazie danych, to magento config:set web/secure/use_in_adminhtml 1imagento config:set web/secure/use_in_frontend 1
Colin
9

podczas instalacji magento2 na lokalnym hoście spróbuj użyć 127.0.0.1 w adresie sklepu w kroku 3 zamiast localhost. teraz możesz zmienić tabelę core_config_data po 2 wierszach

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

wyczyść pamięć podręczną i sprawdź teraz

Edytowane: -

Podczas instalacji wypróbuj 127.0.0.1 na adresie sklepu w kroku 3, jak pokazano na zrzucie ekranu

wprowadź opis zdjęcia tutaj

Pradeep Sanku
źródło
Dokonałem tych samych zmian, administrator magento2 pracuje teraz z Firefoksem, ale nie z Chrome, wyczyszczam również pamięć podręczną, ale bez rezultatu
Dinesh
5

Miałem domenę w postaci local.abc_def.com i występował ten problem.

Zmieniłem podkreślenie w domenie na myślnik, w wyniku czego otrzymałem domenę local.abc-def.com i to rozwiązało problem

Sean
źródło
4

Może być debugowany w \ Magento \ Backend \ Controller \ Adminhtml \ Auth \ Login :: execute

Na przykład z

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

To umiera, a adresy URL są różne, co daje wskazówkę do problemu.

Alex
źródło
Mam prawie taki sam problem jak OP, ale sprawdzenie tych zmiennych powoduje tylko kolejne pytania - dwa adresy URL nigdy się nie zgadzają, ponieważ klucz jest za każdym razem inny. Jeśli spróbuję załadować adres URL bez klucza (tylko admin/na przykład), sprawdza to względem adresu URL z kluczem i przekierowuje ... do innego adresu URL z kluczem, który jest sprawdzany względem adresu URL, który ma następnie inny klucz?
James
Racja, wygląda na to, że jest jakiś błąd / błędna konfiguracja przy użyciu niestandardowego adresu URL administratora - zresetowanie go do „admin” w env.php rozwiązało problem!
James
2

Spróbuj wyczyścić folder var / cache. To pomaga mi.

karick
źródło
pomogło mi to jako ostatnia próba życia .. dzięki @karick
Ask Bytes
0

Mam lepsze rozwiązanie, aby rozwiązać powyższy problem.

Otwórz plik .htaccess

znajdź linię

 #RewriteBase / magento /

W zależności od problemu odkomentuj linię jako

  RewriteBase / magento2 /  

Uwaga: Zapisz plik .htaccess Wyczyść całą pamięć var ​​/ cache i pamięć podręczną przeglądarki.

Arvind
źródło
0

Przed instalacją musisz wybrać prawidłową nazwę domeny. Na przykład: www.magento2-test.devzamiast localhost. Więcej informacji na temat tego problemu: tutaj

Андрей Литвиненко
źródło
0

Użyj localhostjako rzeczywistej domeny najwyższego poziomu zamiast autonomicznej i powinieneś być w stanie to zarządzać. Używanie .devnie jest dobrym pomysłem, jak wyjaśniono w tym artykule: https://iyware.com/dont-use-dev-for-development/

http://magento.localhost/byłoby odpowiednie lub jeśli masz jakieś, DOMAIN.comktóre zostaną wdrożone później, możesz to zrobićDOMAIN.localhost co później skończy się w DOMAIN.com, a następnie możesz zakodować swój serwer WWW, aby szukał nazwy hosta niezależnie od użytej TLD.

np. jeśli masz dwa sklepy w DOMAIN1.com i DOMAIN2.com, wprowadź swoje reguły w nginx conf (lub dowolny inny serwer WWW), tak jak w DOMAIN1.*przypadku kodu oceniającego kod specyficzny dla DOMAIN1. Apache, możesz użyć czegoś takiego jak SetEnvIf Host DOMAIN1\.(localhost|com)$ VAR=valw swoim .htaccesspliku.

Joshua Fricke
źródło
0

W niektórych scenariuszach usunięcie plików cookie specyficznych dla instalacji Magento2 i wyczyszczenie plików pamięci podręcznej Magento var/cacherozwiąże ten problem.

Binod - GoFundMonica
źródło
0

Należy usunąć var ​​/ cache / * i uruchomić polecenie setup: static-content: deploy. powinna być praca. Rozwiązałem ten problem na moim localhost z powyższym krokiem

Jugal Kishor
źródło
0

Po zmianie http na https należy zaktualizować następujące wartości w tabeli core_config_data.

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';

Następnie wyczyść pamięć podręczną i ponownie załaduj adres URL administratora.

Chatura Dinesh Halwatura
źródło
0

Spędziłem 8 godzin na ten temat, oto moje wnioski

1 zestaw AllowOverride all w konfiguracji katalogu apache, przynajmniej aby pobrać plik .htaccess do odczytu, w folderze magento jest uniwersalnym rozwiązaniem do uruchomienia frontoffice i backoffice

2) zestaw RewriteBase / in .htaccess lub podfolder, jeśli localhost / magento

3) Upewnij się, że używasz https jako ścieżki administratora, na wypadek gdyby te żądania okazały się przydatne (w przeciwnym razie admin cookie nie ustawi się wcale):

d = magento.twojadomena.lokalnyhost ;

mysql -ua -pb -e "UPDATE magento.core_config_data SET wartość = ' https : // $ d /' GDZIE ścieżka w ('web / secure / base_url')";

mysql -ua -pb -e "AKTUALIZUJ magento.core_config_data SET wartość = 1 GDZIE ścieżka w (' web / secure / use_in_adminhtml ')”

php bin / magento cache: flush

4) To wszystko, usunąłem wszystkie błędne przypuszczenia z tego postu, ponieważ były one bardzo na pierwszy rzut oka ..

Jacek
źródło
0

Inną rzeczą, na którą należy zwrócić uwagę, jest to, że silnik serwera WWW (nginx / apache) nasłuchuje na porcie SSL 443 i że masz skonfigurowane certyfikaty. Był to dla mnie problem wraz z poradami zawartymi już w innych odpowiedziach.

askepott
źródło