Magento 2 admin на цій веб-сторінці є цикл переспрямування


26

Magento 2 щойно вийшов минулої ночі, і я не можу дочекатися роботи над цим. Я спробував встановити його з усіма передумовами.

Frontend працює добре, але коли я намагався відкрити бекенд, він говорить, що "ця веб-сторінка має цикл переадресації". 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 для розвитку. Ви можете використовувати будь-який екземпляр бродячого преконфігурету, який робить всю роботу за вас


Magento підтримує лише Linux?
Бхаргав Нанекальва


Це може працювати в операційних системах типу 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

Після переходу на https виникли проблеми із циклом переадресації на Magento2 з дійсним доменним іменем.

Перевірте web/secure/use_in_adminhtmlі web/secure/use_in_frontendналаштуйте в core_config_data, обидва повинні бути встановлені на 1.


Дякую, елене, що ти врятував наш пекло часу. це працювало для мене. запит, щоб побачити значення:select * from core_config_data where path like 'web/%';
Shahzaib Hayat Khan

Це саме те, що мені було потрібно. Крім того, якщо це зручніше робити з командного рядка, а не редагувати записи в базі даних, це magento config:set web/secure/use_in_adminhtml 1і єmagento config:set web/secure/use_in_frontend 1
Колін

9

під час встановлення magento2 на своєму localhost спробуйте використовувати 127.0.0.1 у своєму магазині на кроці 3 замість localhost. тепер, що ви можете зробити, це змінити таблицю 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, але не з хромом, я також очищаю кеш, але результату немає
Dinesh

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-адреси різні, це дає натяк на проблему.


У мене є майже та ж проблема, що і в ОП, але перевірка цих варіантів просто викликає додаткові запитання - ці два URL-адреси ніколи не збігаються, тому що ключ щоразу відрізняється. Якщо я спробую завантажити URL-адресу без ключа (лише admin/для прикладу), він перевіряє відповідність URL-адреси за допомогою ключа та переспрямовує ... на іншу URL-адресу з ключем, яка перевіряється на URL-адресу, яка потім має інший інший ключ ??
Джеймс

Правильно, здається, є якась помилка / неправильна конфігурація навколо використання користувацької URL-адреси адміністратора - скидання цього параметра на "адміністратор" у env.php вирішило проблему!
Джеймс


0

У мене є краще рішення, щоб виправити вищезазначене питання.

Відкрийте файл .htaccess

знайти рядок

 #RewriteBase / magento /

Відповідно до вашої проблеми, Відмініть рядок як

  ПерепишітьBase / 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, вирішить цю проблему.


0

Вам слід видалити var / cache / * і запустити команду setup: static-content: expand команда. це має бути робота. Я вирішив це питання на своєму локальному господарі вищезгаданим кроком


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';

Потім очистіть кеші та перезавантажте URL-адресу адміністратора.


0

Я витратив 8 годин на тему, ось мої висновки

1) встановіть AllowOverride всіх у конфігурації каталогу apache, принаймні, щоб отримати файл .htaccess для зчитування, у папці magento є універсальним рішенням для того, щоб змусити працювати frontoffice & & backoffice

2) встановіть RewriteBase / in .htaccess або підпапку, якщо localhost / magento

3) Обов'язково використовуйте https для адміністративного шляху, якщо ці запити можуть виявитися зручними (інакше cookie адміністратора взагалі не встановиться):

d = magento.yourdomain.localhost ;

mysql -ua -pb -e "ОНОВЛЕННЯ magento.core_config_data SET value = ' https : // $ d /' WHERE шлях у ('web / secure / base_url')";

mysql -ua -pb -e "ОНОВЛЕННЯ magento.core_config_data значення SET = 1 WHERE шлях у (' web / secure / use_in_adminhtml ')"

php bin / magento cache: flush

4) Ось і все, я вилучив з цього посту всі неправильні здогадки, оскільки їх було багато на перший погляд ..



0

Інша річ, на яку слід звернути увагу, це те, що двигун вашого веб-сервера (nginx / apache) слухає на порту SSL 443 і у вас налаштовані сертифікати. Це було для мене питання разом із порадами, вже зазначеними в інших відповідях.

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