Администратор Magento 2 эта веб-страница имеет цикл перенаправления

26

Magento 2 только что вышел прошлой ночью, и я не могу дождаться, чтобы поработать над ним. Я попытался установить его со всеми необходимыми условиями.

Фронтенд работает нормально, но когда я пытался открыть бэкэнд, он говорит: «Эта веб-страница имеет цикл перенаправления». Magento создал "admin_r2sxkn" в качестве уникального внутреннего URL. URL моего администратора: http: // localhost / magento2 / admin_r2sxkn

В качестве решения я попытался удалить кеш, который не работал.

PS У меня есть xampp на Mac, с последними версиями PHP и MySql, с установленным расширением PHP, если требуется.

Любая помощь будет оценена.

введите описание изображения здесь

Харит
источник

Ответы:

17

Браузеры не поддерживают файлы cookie на доменах верхнего уровня, таких как localhost. Пожалуйста, переустановите Magento на другое имя хоста (например, magento.dev).

Также Magento поддерживает только Linux. Так что лучше использовать Vagrant для разработки. Вы можете использовать любой существующий предварительно сконфигурированный экземпляр vagrant, который сделает всю работу за вас

Канди
источник
Magento поддерживает только Linux?
Бхаргав Нанекалва
@BhargavNanekalva, да devdocs.magento.com/guides/v2.2/install-gde/…
Кэнди
Он может работать в Linux-подобных операционных системах, таких как macOS (многие люди делают это для разработки; см., Например, github.com/weprovide/valet-plus ). Однако он официально не поддерживается, поэтому возможны неожиданные несовместимости.
Скотт Бьюкенен
22

В моем случае я импортировал уже существующую базу данных Magento 2. Причина, по которой я получил ошибку, была из-за домена cookie в базе данных. Зайдите в свою базу данных и посмотрите в таблицу core_config_data. Вы должны увидеть путь под названием web/cookie/cookie_domain. Убедитесь, что домен совпадает с тем, на котором вы установили Magento 2. Пример: Если вы установили Magento 2, local.dev/<magento-root> вход в систему web/cookie/cookie_domainдолжен быть local.dev.

Павел
источник
Это была и моя проблема ...
Гил
это почтовая причина
Амит Бера
1
выберите * из core_config_data, где путь, например, "web /%";
Дэвид
11

Возникла проблема с циклом перенаправления на Magento2 с допустимым доменным именем после перехода на https.

Проверьте web/secure/use_in_adminhtmlи web/secure/use_in_frontendнастройки в core_config_data, они оба должны быть установлены в 1.

елена
источник
Спасибо, Элен, вы спасли наш ад. это сработало для меня. запрос, чтобы увидеть значения:select * from core_config_data where path like 'web/%';
Шахзаиб Хаят Хан
Это было именно то, что мне было нужно. Кроме того, если это удобнее делать из командной строки, чем редактировать записи в базе данных, это magento config:set web/secure/use_in_adminhtml 1иmagento config:set web/secure/use_in_frontend 1
Колин
9

при установке magento2 на ваш локальный хост попробуйте использовать 127.0.0.1 в адресе вашего магазина на шаге 3 вместо локального. Теперь, что вы можете сделать, это изменить таблицу core_config_data после 2 строк

web/unsecure/base_url to http://127.0.0.1/magento2/
web/secure/base_url to https://127.0.0.1/magento2/

очистить кеш и проверить сейчас

Отредактировано: -

При установке попробуйте 127.0.0.1 в адрес вашего магазина в шаге 3, как показано на скриншоте

введите описание изображения здесь

Прадип Санку
источник
Я сделал те же изменения, администратор magento2 теперь работает с Firefox, но не с Chrome, я также очищаю кеш, но без результата
Динеш
5

У меня был домен вида local.abc_def.com, и я столкнулся с этой проблемой.

Я изменил подчеркивание в домене, чтобы оно стало дефисом, в результате чего появился домен local.abc-def.com, и это решило проблему для меня

Шон
источник
4

Может быть отлажено в \ Magento \ Backend \ Controller \ Adminhtml \ Auth \ Login :: execute

Например с

    $requestUrl = $this->getRequest()->getUri();
    $backendUrl = $this->getUrl('*');
    // redirect according to rewrite rule
    echo (string)$requestUrl . ' != ' . $backendUrl;
    die();

Это умирает, и URL-адреса разные, это дает подсказку к проблеме.

Alex
источник
У меня почти та же проблема, что и у OP, но проверка этих переменных просто вызывает дополнительные вопросы - эти два URL-адреса никогда не совпадают, потому что ключ каждый раз отличается. Если я пытаюсь загрузить URL-адрес без ключа (только admin/для примера), он проверяет это по URL-адресу с ключом и перенаправляет ... на другой URL-адрес с ключом, который проверяется по URL-адресу, который затем имеет другой другой ключ ??
Джеймс
Правильно, похоже, что есть какая-то ошибка / неправильная конфигурация при использовании пользовательского URL администратора - сброс этого значения до 'admin' в env.php решил проблему!
Джеймс
2

Попробуйте почистить папку var / cache. Это помогает мне.

karick
источник
это помогло мне как последняя попытка жизни .. спасибо @karick
Ask Bytes
0

У меня есть лучшее решение, чтобы исправить вышеуказанную проблему.

Откройте файл .htaccess.

найти линию

 #RewriteBase / magento /

В соответствии с вашей проблемой, раскомментируйте строку как

  RewriteBase / magento2 /  

Примечание: сохраните файл .htaccess. Очистите все var / cache и кеш браузера.

Эрвинд
источник
0

Перед установкой необходимо выбрать действительное доменное имя. Например: www.magento2-test.devвместо localhost. Подробнее об этой проблеме: здесь

Андрей Литвиненко
источник
0

Используйте localhostв качестве фактического домена верхнего уровня вместо автономного, и вы должны иметь возможность управлять этим. Использование .devне является хорошей идеей, как описано в этой статье: https://iyware.com/dont-use-dev-for-development/

http://magento.localhost/было бы целесообразно, или если у вас есть некоторые, на DOMAIN.comкоторые он будет развернут позже, вы можете сделать DOMAIN.localhostэто позже, в конечном итоге на DOMAIN.com, а затем вы можете написать свой веб-сервер для поиска имени хоста независимо от используемого вами TLD.

Например, если у вас есть два магазина на DOMAIN1.com и DOMAIN2.com, введите свои правила в nginx conf (или на любом другом веб-сервере), как DOMAIN1.*для кода, оценивающего специфический код DOMAIN1. Apache, вы можете использовать что-то вроде SetEnvIf Host DOMAIN1\.(localhost|com)$ VAR=valв вашем .htaccessфайле.

Джошуа Фрике
источник
0

В некоторых сценариях удаление файлов cookie, относящихся к установке Magento2, и очистка файлов кэша Magento var/cache, решит эту проблему.

Бинод - GoFundMonica
источник
0

Вы должны удалить var / cache / * и запустить команду setup: static-content: deploy. это должно быть работа. Я решил эту проблему на моем локальном хосте с шагом выше

Джугал Кишор
источник
0

После переключения http на https необходимо обновить следующие значения в таблице core_config_data.

UPDATE core_config_data SET value = REPLACE(value, '0', '1') WHERE path = 'web/secure/use_in_frontend';

UPDATE core_config_data SET value = REPLACE(value, '0', '1') WHERE path = 'web/secure/use_in_adminhtml';

Затем очистите кеш и перезагрузите админ.

Чатура Динеш Халватура
источник
0

Я потратил 8 часов на эту тему, вот мои выводы

1) установите AllowOverride all при настройке каталога apache, по крайней мере, чтобы получить файл .htaccess для восстановления, в папке magento - универсальное решение для работы frontoffice && backoffice для работы

2) установить RewriteBase / в .htaccess или подпапку, если localhost / magento

3) Обязательно используйте https для пути администратора, если эти запросы могут оказаться полезными (в противном случае файл cookie администратора не будет установлен вообще):

d = magento.yourdomain.localhost ;

mysql -ua -pb -e "UPDATE magento.core_config_data SET value = ' https : // $ d /' WHERE path in ('web / secure / base_url')";

mysql -ua -pb -e "UPDATE magento.core_config_data SET value = 1 ГДЕ путь в (' web / secure / use_in_adminhtml ')"

php bin / magento cache: flush

4) Вот и все, я удалил все неправильные предположения из этого поста, так как их было много на первый взгляд ..

Джек
источник
0

Еще одна вещь, на которую стоит обратить внимание, это то, что ваш движок веб-сервера (nginx / apache) прослушивает SSL-порт 443 и у вас настроены сертификаты. Это был вопрос для меня вместе с советом, уже изложенным в других ответах.

askepott
источник