Błąd Magento 2.2 „Strona nie przekierowuje poprawnie”

10

Testuję własny moduł na Magento CE 2.2.0, ale ciągle pojawia się komunikat „Strona nie przekierowuje poprawnie”. Patrząc na ruch sieciowy, widzę te żądania:

  • / magento22-acumulus / admin /
  • / magento22-acumulus / admin / admin / index / denied /
  • / magento22-acumulus / admin / admin / auth / login /
  • / magento22-acumulus / admin / admin /
  • / magento22-acumulus / admin / admin / index / denied /
  • / magento22-acumulus / admin / admin / auth / login /
  • / magento22-acumulus / admin / admin /
  • / magento22-acumulus / admin / admin / index / denied /
  • / magento22-acumulus / admin / admin / auth / login /
  • / magento22-acumulus / admin / admin /
  • ...

Moja konfiguracja:

  • instalacja lokalna na podstawowym adresie URL / magento22-acumulus /
  • Wampserver 3.0.8 z php 7.0.10 i Apache 2.4.23

Co ja zrobiłem:

  • zainstaluj Magento 2.2.0 z przykładowymi danymi
  • ustawienia zmienione: usuń tajny klucz i użyj standardowego adresu admin / url
  • przetestowałem to: dostaję ekran logowania
  • zainstaluj mój moduł, moduł: włącz, ustaw: aktualizuj, ustaw: di: kompiluj
  • przetestowałem to: błąd jak wyżej
  • moduł: wyłącz, pamięć podręczna: wyczyść, ustaw: di: kompiluj
  • przetestowałem to: dostaję ekran logowania
  • powtórzyłem to wiele razy, ten sam wzór, więc myślałem, że to ma związek z moim modułem.
  • Ale potem mój moduł działał raz i mogłem przejść do własnych stron. Niestety błąd wrócił, więc kontynuowałem debugowanie, włączając i wyłączając moduł, ale nie mogłem zlokalizować problemu
  • a teraz dostaję problem bez włączonego modułu. Myślę więc, że jest to jakiś dziwny warunek / błąd w samym Magento.

W czym może być problem?

fietserwin
źródło
jeśli masz rozwiązanie, napisz swoją odpowiedź
lalit mohan
Niestety jeszcze nie. Przestałem testować mój moduł na MA2.2, a teraz testuję go tylko na MA2.1. Mój moduł jest używany przez klientów w wersji MA2.2, więc więcej powodów, by sądzić, że nie jest to jakiś błąd w konfiguracji, ustawieniach lub kodzie mojego modułu. Jeśli w końcu znajdę rozwiązanie, opublikuję je.
fietserwin
Mam ten sam problem. Odkryłem, że jest problem z moim modułem klasy pomocniczej .. Musisz sprawdzić swoje moduły jeden po drugim .. wyłącz, aby dowiedzieć się, która przyczyna błędu ..
lalit mohan
czy możesz udostępnić obraz dokładnie tak, jak widzisz błąd?
sarvesh Dineshkumar Patel
wypróbowałeś nową wersję i nie dodawałeś żadnych rozszerzeń?
sarvesh Dineshkumar Patel

Odpowiedzi:

1

Nie jestem pewien, czy jest to błąd w procesie kompilacji, czy coś nie tak z kodem modułu. W moim przypadku kompilacja Magento niepoprawnie tworzyła przechwytywacz dla klasy w moim module (bez faktycznie zdefiniowanego konstruktora), który rozszerzył inną klasę innego modułu, który rozszerzył klasę z rdzenia Magento (oba ze zdefiniowanymi konstruktorami). Tworzyło to również pustą stronę w interfejsie, oprócz wspomnianych problemów. Po kilku nowych instalacjach Magento 2.2 i Magento 2.1 z tym samym problemem zadziałało to dla mnie:

  • Włącz tryb programisty: wdrażanie php bin / magento: tryb: ustaw programistę
  • Zainstaluj moduł (prześlij / skopiuj pliki), a następnie uruchom konfigurację php bin / magento: upgrade
  • Zamiast uruchamiać proces kompilacji (wymagany tylko przy zmianie kolejności argumentów konstruktora lub zmianie typów argumentów), wystarczy usunąć folder / wygenerowany / kod / YOURMODULENAMESPACE
Gabriel MdS
źródło
0

Ponieważ używasz Apache, proponuję włączyć RewriteLog. Następnie powtórz problem i sprawdź ponownie dzienniki.

RewriteLog "logs\rewritelog.txt"    
RewriteLogLevel 3
x86fantini
źródło
Dziękuję za odpowiedź, ale czego to może mnie nauczyć? Próbowałem już debugować, więc wiem, że każde przekierowane żądanie jest przetwarzane przez Magento. Nie widzę, jak Apache pojawia się na zdjęciu?
fietserwin
Magento nie jest serwerem internetowym. Serwer Apache używa przekierowań. Ponieważ błąd dotyczy przekierowania, pierwsze miejsce, w którym można znaleźć między innymi to, co robi apache. Masz 50% chanches, aby zobaczyć, że apache robi dziwne przekierowanie (http-to-https lub podobne) i 50% chanches, aby zobaczyć, że magento instruuje apche, aby przekierowywał w dziwny sposób, być może jak nie www do www lub viceversa.
x86fantini
Magento zwraca instrukcje przekierowania do przeglądarki. Nie ma problemu http kontra https (jak w wielu innych raportach o niekończących się przekierowaniach MA2.2) ani www kontra non-www, ponieważ jest to na localhost. Przekierowania są na strony zgodnie z opisem w pytaniu.
fietserwin
0

W zeszłym tygodniu próbowałem ponownie zainstalować czyste środowisko M2.3.4 (z przykładowymi danymi) i, hoora, wydaje się, że działa. Tyle że po wykonaniu instalacji: di: kompilacja ten problem pojawił się ponownie. Jednak usunięcie wygenerowanego kodu z / wygenerowanego / kodu sprawiło, że znów działało ... Może to być problem w generatorze lub jakiś kod, który sprawdza typ obiektu i nie obsługuje wygenerowanych klas przechwytujących. .

@Gabriel MdS odpowiedział mniej więcej na to samo, ale dla mnie stało się to również wtedy, gdy mój własny moduł nie był jeszcze zainstalowany, więc miałem tylko czystą instalację z przykładowymi danymi.

Nie jest to więc ostateczna odpowiedź ani rozwiązanie, ale z pewnością wraz z odpowiedzią @Gabriel MdS stanowi mocną wskazówkę do procesu generowania.

fietserwin
źródło
0

Wiem, że to stary bieżnik, ale zajął pierwsze miejsce w mojej wyszukiwarce Google. Żadna z tych odpowiedzi mi nie pomogła, ale mam ten sam problem i udało mi się go rozwiązać. Moja konfiguracja używa odwrotnego proxy. Za proxy używam http (non-ssl), a przed proxy dozwolone jest tylko https (ssl). To spowodowało mój problem z przekierowaniem.

Rozwiązanie: dodaj następujący wiersz (bezpośrednio po komentarzach) do pub / index.php

$ _SERVER ['HTTPS'] = 'on';

Dirk Krijgsman
źródło