Ошибка 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.