Błąd Magento 2 ERR_TOO_MANY_REDIRECTS

20

Jestem nowy w Magento, po instalacji wersji społecznościowej Magento 2. Nie mam dostępu do panelu administracyjnego. Występuje błąd.

Ta strona internetowa ma pętlę przekierowań

Błąd ERR_TOO_MANY_REDIRECTS

Pomóż mi rozwiązać problem. Awans dzięki wszystkim.

Abdul Aziz
źródło
Podaj więcej informacji Jak zainstalowałeś Magento? Jakie parametry wprowadziłeś podczas instalacji
Arkadii Chyzhov,
Czy masz włączony XDebug?
Alex Paliarush,
Po problemach z konfiguracją protokołu SSL mam ten sam problem. Właśnie to naprawiłem: sudo php bin / magento cache: flush
AdNauseum

Odpowiedzi:

28

Miałem ten sam problem z manipulowaniem bazami danych, ta odpowiedź rozwiązała mój problem ERR_TOO_MANY_REDIRECTS:

/magento//a/84756/50635

Aby to naprawić, spróbuj ustawić Użyj bezpiecznych adresów URL w Admin na wartość true, w System -> Konfiguracja -> Ogólne -> Internet.

Lub z dostępem do bazy danych zmień następującą wartość rekordu na 1 :

SELECT * FROM core_config_data where path like '%web/secure/use_in_adminhtml%';
DependencyHell
źródło
5
W moim przypadku jego wartość wynosi już 1, nadal widzę ten błąd.
kashish
1
działa jak urok
mrtuvn
Działa, bardzo dobrze
Vu Tran Kien
Dziękuję Ci!! Działa zgodnie z oczekiwaniami!
MazeStricks
18

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
4
Miałem ten sam problem. Zmieniłem wartość web/cookie/cookie_domainz NULL na nazwę mojej domeny, ale nadal nie działa.
kashish
1
Wielkie dzięki! Zmieniłem wartość na moją „domain.local” i wszystko działa
Nikolai Silin
Dziękuję bardzo!! dla mnie to był problem! : D
Pierre-Verthume Larivière,
14

W tym poście odnoszę się do Twojej domeny sklepu magento jako example.com. Jeśli jest to www.example.com lub store.example.com lub cokolwiek innego, odpowiednio je zastąp.

Właśnie natknąłem się na ten problem i oto szczegóły. Instalacja Magento 2 2.2.2. Skonfigurowałem początkowo bezpieczny podstawowy adres URL na http://example.com/, a gdy uzyskiwałem certyfikat letsencrypt ssl cert na moim serwerze, bezmyślnie włączyłem opcję przekierowywania całego ruchu http na https.

To normalnie nie byłoby problemem, ale Magento może być nieco temperamentny. Odwiedziłem witrynę sklepową i mój protokół SSL działa poprawnie, ale gdy próbowałem uzyskać dostęp do administratora, otrzymałem powiadomienie „ERR_TOO_MANY_REDIRECTS” i nieudane ładowanie strony.

Widzę kilka sposobów rozwiązania tego problemu, ale jednym z nich była pierwsza próba.

  1. SSH do serwera.
  2. cd na twój magento install reż.
  3. uruchom następujące polecenie:
    • konfiguracja php bin / magento: pokaż

przejrzyj dane wyjściowe i poszukaj web / secure / base_url, web / secure / base_link_url & web / secure / use_in_adminhtml .

Wartości te należy skonfigurować za pomocą https://example.com/ dla opcji adresu URL i web / secure / use_in_adminhtml = 1.

Jeśli nie są, możesz uruchomić następujące polecenia z katalogu instalacyjnego magento, aby zaktualizować konfigurację.

  1. konfiguracja php bin / magento: wrażliwe: ustaw web / secure / base_url https://example.com/
  2. konfiguracja php bin / magento: wrażliwy: ustaw web / secure / base_link_url https://example.com
  3. Konfiguracja php bin / magento: ustaw web / secure / use_in_adminhtml 1
  4. pamięć podręczna php bin / magento: czysta

Następnie odwiedź stronę administratora, wyczyść pamięć podręczną przeglądarki, załaduj ponownie, a teraz powinieneś mieć dostęp z powrotem! z obsługą SSL.

Pierwszym krokiem, który zrobię po tym, jest ponowne zalogowanie się do portalu administratora i sprawdzenie opcji konfiguracji, aby upewnić się, że nie napotkasz żadnych innych nieoczekiwanych problemów.

Mam nadzieję, że ta pomoc!

Oto niektóre zasoby Magento, które pomogą Ci:

Ustaw wartości konfiguracji

Inne ścieżki konfiguracji Odniesienia

Wrażliwe i specyficzne dla systemu odniesienia

Ryan Wilson
źródło
1
Dzięki. Dodatkowo miałem przekierowanie skonfigurowane przez plesk z http na https, które musiałem wyłączyć, aby uzyskać kopię zapasową Magento. Uwaga: czyszczenie pamięci podręcznej jest tutaj ważnym krokiem.
s.Daniel
11

W moim przypadku skopiowałem witrynę z serwera klienta i konfigurowałem ją w moim systemie lokalnym. Po prostu usunąłem plik cookie / domenę z

core_config_data

stolik, a potem opróżniłem pamięć podręczną, zadziałało dla mnie!

Możesz to również zrobić:

W tabeli „core_config_data” usuń wartość „web / cookie / cookie_domain” i ustaw „web / cookie / cookie_httponly” na „0”. Wyczyść pamięć podręczną, usuwając pliki z „var / cache”.

Jitendra Mandloi
źródło
4

Miałem ten sam problem po zmianie witryny na https. Kiedy sprawdziłem web / cookie / cookie_domain w core_config_data było NULL.

mysql> select * from core_config_data where path like 'web/cookie%';
+-----------+---------+----------+--------------------------+-------+
| config_id | scope   | scope_id | path                     | value |
+-----------+---------+----------+--------------------------+-------+
|        19 | default |        0 | web/cookie/cookie_domain | NULL  |
+-----------+---------+----------+--------------------------+-------+
1 row in set (0.00 sec)

Następnie ustawiłem go na mój fqdn:

mysql> update core_config_data set value = 'mysites.fqdn.com' where path = 'web/cookie/cookie_domain' ;

Następnie ponownie uruchomiłem stronę internetową i działała dobrze:

systemctl restart apache2
dyskoteka
źródło
3

Wystąpił błąd ERR_TOO_MANY_REDIRECTS, ponieważ zapomniałem ustawić wersję PHP na PHP7.

Peter Lauge
źródło
2

Ten błąd występuje z powodu używania localhostjako nazwy hosta, szczególnie w Chrome. Zalecamy korzystanie z własnej domeny. Sprawdzić bloga Alana szczegóły

To nie jest Magento, ale to, że przeglądarki internetowe zachowują się inaczej, gdy są używane z nazwą domeny zawierającą mniej niż 2 kropki, na przykład localhost.

Maddy
źródło
Gdzie OP wspomniał, że zainstalował go za pomocą „localhost”?
MrUpsidown
2

Możesz spróbować ponownie zainstalować Magento z lokalnym adresem IP zamiast localhost.

To będzie http://127.0.0.1/foldername . Po zainstalowaniu w ten sposób będziesz mógł uzyskać do niego dostęp z dowolnej przeglądarki.

Możesz także zmienić rekord w bazie danych w core_config_data, gdzie wartość będzie wyglądać:

http://localhost/foldername/

zamień to na

http://127.0.0.1/foldername/

Na dwa sposoby nazwa folderu to katalog, w którym znajduje się Magento.

Aman Srivastava
źródło
2

Ponadto - aby dodać to, czego doświadczyłem, jeśli serwujesz z apache, ale używasz nginx do zakończenia ssl (i prawdopodobnie lakierowania cache), upewnij się, że twój apache ma

 SetEnvIf X-Forwarded-Proto "https" HTTPS=on

w przeciwnym razie będzie szaleństwo z przekleństwem nginx

wuxmedia
źródło
0

Nie używaj umlautów w podstawowym adresie URL, np .:

www.yourhost/österreich

Musiałem zmienić nazwę na

Detzler
źródło
0

W moim przypadku ustawiłem wartość web/cookie/cookie_domainścieżki w core_config_datatabeli na NULL .

Możesz to zrobić za pomocą Magerun :

magerun config:set web/cookie/cookie_domain NULL
Anna P.
źródło
0

W moim przypadku korzystałem z adresu IP zamiast localhost, ale nadal nie rozwiązałem. Zmieniono klucz administratora. Zadziałało.

Oczywiście wszystkie powyższe odpowiedzi są nadal aktualne, ponieważ napotkaliśmy je i zastosowaliśmy podczas projektowania.

Chrome powoduje to bardzo często. Firefox radzi sobie z tym trochę lepiej.

Kalyan Chakravarthi V.
źródło
0

Używam Magento 2 na AWS i postępując zgodnie z sugestią Ryana Wilsona Naprawiłem problem, przechodząc do folderu htdocs, w którym zainstalowano Magento, i użyj następującego polecenia

sudo php bin/magento config:set web/unsecure/base_url http://www.yoursite.com/
sudo php bin/magento config:set web/secure/base_url https://www.yoursite.com/
php bin/magento cache:clean
współtwórca kodu
źródło
0

w wersji magento 2.2 Nie mogę nawet znaleźć ścieżki web / cookie / cookie_domain w core_config_data. więc w moim przypadku problem dotyczył usługi memcached. Skonfigurowałem session.save_handler = memcached w php.ini zgodnie z dokumentami magento i to powstrzymało administratora od otwierania poprawnie, tymczasem front był w porządku. Po zmianie programów obsługi z powrotem na session.save_handler = wszystkie pliki działały

Alex D.
źródło
0

miałem ten sam problem, aby to naprawić, wchodząc

SELECT * FROM core_config_data where path like 'web/secure/use_in_adminhtml'

wartość jest zmieniana z NULL na 1

Aadii Mughal
źródło
0

Ręcznie usunąłem var / cache / * i var / session / * naprawiono dla mnie po przeniesieniu witryny z jednej subdomeny do innej i zmianie niezbędnych base_urls.

Dave
źródło
0

Żadne z proponowanych tutaj rozwiązań nie działało w moim środowisku programistycznym działającym w kontenerze Docker. To, co zadziałało, to zmiana następującej linii etc/nginx/fastcgi:

fastcgi_param HTTPS $https if_not_empty;

…do:

fastcgi_param HTTPS on;

Źródło: https://magenticians.com/magento-ssl-configuration-issues-resolved/#Enabling-SSL .

ACJ
źródło
(Nie zapomnij zrestartować kontenera po dokonaniu wspomnianych zmian.)
ACJ
0

W moim przypadku Windows nie wyprodukował poprawnie przechwytywaczy. Skompilowałem kod w moim systemie operacyjnym Windows i skopiowałem go do kontenera dokera. Sugeruję, że problemem jest problem ścieżki. Zobacz tutaj

Moja wersja Magento to 2.3.3

Lukas Komarek
źródło
0

To zadziałało dla mnie!

php bin/magento config:set web/unsecure/base_url http://example.local/ 
php bin/magento config:set web/secure/base_url https://example.local/ 
php bin/magento config:set web/secure/use_in_adminhtml 1
Kako Sabolo
źródło
-1

Sprawdź, czy w twoim nginx / apache jest skonfigurowane połączenie SSL. Po zaznaczeniu połączenia SSL dla dostępu administratora i nie skonfigurowaniu protokołu SSL następuje przekierowanie do standardowego połączenia http: //, a następnie z powrotem do https: //. Dlatego istnieje pętla.

W Nginxie powinno być coś takiego:

server {
    listen 80;
    listen 443 ssl;
    server_name test.com;
    set $MAGE_ROOT /storage/test.com;
...
Michał Nowostawski
źródło
Gdzie OP wspomniało o nginx? Gdzie zmieniłeś tę konfigurację i dlaczego? Co to robi?
MrUpsidown
-1

Spróbuj użyć tej poprawki .htaccess

############################################
SetEnvIf HTTPS On HTTPS=on
Pradino
źródło