Ошибка Magento 2.2 «Страница не перенаправляется должным образом»


10

Я тестирую свой собственный модуль на Magento CE 2.2.0, но получаю сообщение «Страница перенаправляется неправильно». Глядя на сетевой трафик, я вижу эти запросы:

  • / Magento22-acumulus / администратор /
  • / Magento22-acumulus / админ / админ / индекс / отказано /
  • / Magento22-acumulus / администратор / администратор / авт / Логин /
  • / Magento22-acumulus / админ / админ /
  • / Magento22-acumulus / админ / админ / индекс / отказано /
  • / Magento22-acumulus / администратор / администратор / авт / Логин /
  • / Magento22-acumulus / админ / админ /
  • / Magento22-acumulus / админ / админ / индекс / отказано /
  • / Magento22-acumulus / администратор / администратор / авт / Логин /
  • / Magento22-acumulus / админ / админ /
  • ...

Моя настройка:

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

Что я сделал:

  • установить Magento 2.2.0 с примерами данных
  • настройки изменены: удалите секретный ключ и используйте стандартный admin / url
  • проверил это: я получаю экран входа
  • установить мой модуль, модуль: включить, настроить: обновить, настроить: di: compile
  • проверил: ошибка, как указано выше
  • модуль: отключить, кеш: очистить, настройка: di: compile
  • проверил это: я получаю экран входа
  • повторил это несколько раз, один и тот же шаблон, поэтому я подумал, что это связано с моим модулем.
  • Но потом однажды у меня заработал модуль, и я смог перейти на свои собственные страницы. К сожалению, ошибка вернулась, поэтому я продолжил отладку, включив и отключив модуль, но не смог найти проблему
  • и теперь я также получаю проблему без моего модуля включен. Так что я думаю, что это странное условие / ошибка в самом Magento.

В чем может быть проблема здесь?


если у вас есть решение, пожалуйста, оставьте свой ответ
Лалит Мохан

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

У меня такая же проблема. Я обнаружил, что есть проблема с моим модулем Helper Class .. Вы должны проверить свои модули один за другим .. отключить, чтобы выяснить, что является причиной ошибки ..
lalit mohan

Вы можете поделиться изображением, что вы получаете точную ошибку?
Сарвеш Динешкумар Патель

Вы пробовали свежую версию и не добавляли никаких расширений или еще?
Сарвеш Динешкумар Патель

Ответы:


1

Я не уверен, что это ошибка в процессе компиляции или что-то не так с кодом модуля. В моем случае компиляция Magento неправильно создавала перехватчик для класса в моем модуле (без фактического определенного конструктора), который расширял другой класс другого модуля, который расширял класс из ядра Magento (оба с определенными конструкторами). Это также создавало пустую страницу во внешнем интерфейсе, помимо упомянутых вами проблем. После нескольких новых установок Magento 2.2, а также Magento 2.1 с той же проблемой, это сработало для меня:

  • Включить режим разработчика: php bin / magento deploy: mode: установить разработчика
  • Установите ваш модуль (загрузите / скопируйте файлы), затем запустите php bin / magento setup: upgrade
  • Вместо запуска процесса компиляции (необходим только при изменении порядка аргументов конструктора или при изменении типов аргументов), просто удалите папку / generate / code / YOURMODULENAMESPACE

0

Поскольку вы используете Apache, я предлагаю вам включить RewriteLog. Затем повторить проблему и еще раз проверить логи.

RewriteLog "logs\rewritelog.txt"    
RewriteLogLevel 3

Спасибо за ваш ответ, но чему это меня научило? Я уже пытался отладить, поэтому я знаю, что каждый перенаправленный запрос обрабатывается Magento. Я не вижу, как Apache входит в картину?
fietserwin

Magento не является веб-сервером. Веб-сервер apache использует Redirects. Итак, поскольку ошибка связана с перенаправлением, первое место, где следует искать, что делает Apache. У вас есть 50% изменений, чтобы увидеть, что apache oa делает странное перенаправление (http-to-https или подобное), и 50% изменений, чтобы увидеть, что magento инструктирует apche для странного пути перенаправления, например, не с www на www или наоборот.
x86fantini

Magento возвращает инструкции по перенаправлению в браузер. Нет проблем с http и https (как во многих других отчетах о бесконечных перенаправлениях в MA2.2), а также с www и без www, поскольку это происходит на localhost. Перенаправления на страницы, как описано в вопросе.
fietserwin

0

На прошлой неделе я снова попытался установить чистую среду M2.3.4 (с примерами данных), и, похоже, она работает. За исключением того, что после установки: di: compile эта проблема появилась снова. Однако удаление сгенерированного кода из / generate / code заставило его снова работать ... Так что это может быть проблемой в генераторе или некотором коде, который проверяет тип объекта и не обслуживает сгенерированные классы перехватчиков. ,

@Gabriel MdS ответил более или менее на то же самое, но для меня это также произошло, когда мой собственный модуль еще не был установлен, поэтому у меня была только чистая установка с примерами данных.

Таким образом, не окончательный ответ или решение, но, безусловно, вместе с ответом @Gabriel MdS, сильный намек на процесс генерации.


0

Я знаю, что это старый шаг, но он занял первое место в моем поиске Google. Ни один из этих ответов не помог мне, но я столкнулся с той же проблемой и смог ее решить. Моя настройка использует обратный прокси. За прокси я использую http (не-ssl), а до прокси разрешен только https (ssl). Это вызвало мою проблему с перенаправлением.

Решение: добавьте следующую строку (сразу после комментариев) в pub / index.php

$ _SERVER [ 'HTTPS'] = 'на';

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.