Помилка Magento 2.2 "Сторінка не перенаправляється належним чином"


10

Я тестую власний модуль на Magento CE 2.2.0, але продовжую отримувати "Сторінка не перенаправляється належним чином". Переглядаючи мережевий трафік, я бачу такі запити:

  • / magento22-acumulus / admin /
  • / magento22-acumulus / admin / admin / index / відмовлено /
  • / magento22-acumulus / admin / admin / auth / login /
  • / magento22-acumulus / admin / admin /
  • / magento22-acumulus / admin / admin / index / відмовлено /
  • / magento22-acumulus / admin / admin / auth / login /
  • / magento22-acumulus / admin / admin /
  • / magento22-acumulus / admin / admin / index / відмовлено /
  • / magento22-acumulus / admin / admin / auth / login /
  • / magento22-acumulus / admin / admin /
  • ...

Моя установка:

  • локальна установка на базовий URL / magento22-acumulus /
  • Wampserver 3.0.8 з php 7.0.10 та Apache 2.4.23

Що я зробив:

  • встановіть Magento 2.2.0 із зразковими даними
  • налаштування змінені: видаліть секретний ключ та використовуйте стандартний адміністратор / URL
  • перевірив це: я отримую екран входу
  • встановити мій модуль, модуль: включення, налаштування: оновлення, налаштування: di: компілювати
  • перевірено це: помилка, як зазначено вище
  • модуль: відключити, кеш: очистити, налаштування: di: компілювати
  • перевірив це: я отримую екран входу
  • повторював це кілька разів, за тією ж схемою, тож я думав, що це стосується мого модуля.
  • Але тоді я один раз змусив свій модуль, і я зміг перейти на власні сторінки. На жаль, помилка повернулася, тому я продовжував робити налагодження, включаючи та відключаючи модуль, але не міг знайти проблему.
  • і тепер я також отримую проблему без включеного модуля. Тому я думаю, що це сам дивний стан / помилка в самому Magento.

Яка тут може бути проблема?


якщо у вас є рішення, будь ласка, опублікуйте свою відповідь
— lalit mohan

На жаль, поки що. Я припинив тестування свого модуля на MA2.2 і тепер тестую його лише на MA2.1. Мій модуль використовується клієнтами на MA2.2, тому більше причин вважати, що це не якась помилка в налаштуваннях, налаштуваннях або коді мого модуля. Якщо, врешті-решт, я знайду рішення, я його опублікую.
— fietserwin

У мене така ж проблема. Я дізнався, що існує проблема з моїм модулем Helper Class .. Ви повинні перевірити свої модулі по черзі .. відключити, щоб з’ясувати, що викликає помилку ..
— lalit mohan

Ви можете поділитися зображенням, на що ви отримаєте точну помилку?
— sarvesh Dineshkumar Patel

ви спробували це у свіжому варіанті, не додаючи розширень чи ще?
— sarvesh Dineshkumar Patel

Відповіді:


1

Я не впевнений, це помилка в процесі компіляції чи щось не так з кодом модуля. У моєму випадку компіляція Magento неправильно створювала перехоплювач для класу мого модуля (без фактично визначеного конструктора), який розширював ще один клас іншого модуля, який розширював клас з ядра Magento (обидва з визначеними конструкторами). Це також створювало порожню сторінку у фронталі, окрім проблем, про які ви згадали. Після кількох свіжих встановлень Magento 2.2, а також Magento 2.1 з тією ж проблемою, це спрацювало для мене:

  • Увімкнути режим розробника: розгортання php bin / magento: режим: встановити розробника
  • Встановіть модуль (завантажте / скопіюйте файли), після чого запустіть php bin / magento setup: upgrade
  • Замість того, щоб запускати процес компіляції (необхідний лише тоді, коли змінюється порядок аргументів конструктора або змінюються типи аргументів), просто видаліть папку / згенерований / код / ​​YOURMODULENAMESPACE

0

Оскільки ви використовуєте Apache, я пропоную вам включити RewriteLog. Потім повторіть проблему та перевірте журнали ще раз.

RewriteLog "logs\rewritelog.txt"    
RewriteLogLevel 3

Дякую за вашу відповідь, але що це могло мене навчити? Я вже намагався налагоджувати, тож знаю, що кожен перенаправлений запит обробляється Magento. Я не бачу, як Apache входить у картину?
— fietserwin

Magento - не веб-сервер. Веб-сервер apache використовує перенаправлення. Отже, оскільки помилка стосується перенаправлення, в першу чергу слід шукати ia, що робить апаш. У вас є 50% чанів, щоб побачити, що апачі виконують дивні перенаправлення (http-to-https або подібні) і 50% -ні чанки, щоб побачити, що magento вказує apche переспрямовувати дивним чином, можливо, як не-www на www або viceversa.
— x86fantini

Magento повертає в браузер інструкції про переадресацію. Немає проблеми http проти https (як у багатьох інших звітах про нескінченні переадресації MA2.2), ні www проти non-www, як це є у localhost. Переспрямування - на сторінки, як описано в питанні.
— fietserwin

0

Минулого тижня я знову спробував встановити чисте середовище M2.3.4 (із зразковими даними), і, схоже, працює. За винятком того, що після установки: di: компілювати ця проблема з’явилася знову. Однак видалення згенерованого коду з / згенерованого / коду змусило його знову працювати ... Отже, це може бути проблема в генераторі або якийсь код, який перевіряє тип об'єкта і не обслуговує створені класи перехоплювачів. .

@Gabriel MdS відповів більш-менш на те саме, але для мене це сталося і тоді, коли мій власний модуль ще не був встановлений, тому я мав лише чисту інсталяцію із зразковими даними.

Отже, не остаточна відповідь чи рішення, але, безумовно, разом із відповіддю @Gabriel MdS, сильний натяк на процес генерації.


0

Я знаю, що це старий протектор, але він посів перше місце в моєму пошуку Google. Жодна з цих відповідей мені не допомогла, але я відчуваю те саме питання і змогла його вирішити. У моїй установці використовується зворотний проксі. За проксі-сервером я використовую http (non-ssl), а перед проксі-сервером дозволено лише https (ssl). Це спричинило мою проблему з переадресацією.

Рішення: додайте наступний рядок (відразу після коментарів) до pub / index.php

$ _SERVER ['HTTPS'] = 'увімкнено';

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.