Magento 2 adminこのWebページにはリダイレクトループがあります


26

Magento 2は昨夜リリースされたばかりで、作業を待つことができません。すべての前提条件でインストールしてみました。

フロントエンドは正常に動作しますが、バックエンドを開こうとすると、「このWebページにはリダイレクトループがあります」と表示されます。Magentoは、「admin_r2sxkn」を一意のバックエンドURLとして作成しました。私の管理URLはhttp:// localhost / magento2 / admin_r2sxknです

解決策として、機能しないキャッシュを削除してみました。

PS Macにはxamppがあり、PHPとMySqlの最新バージョンがあり、必要に応じてPHP拡張機能がインストールされています。

任意の助けをいただければ幸いです。

ここに画像の説明を入力してください

回答:


17

ブラウザは、localhostなどのトップレベルドメインのCookieをサポートしていません。別のホスト名でMagentoを再インストールしてください(例:magento.dev)。

また、MagentoはLinuxのみをサポートしています。Vagrantを開発に使用する方が良いでしょう。すべての作業を行う既存の事前設定されたvagrantインスタンスを使用できます


MagentoはLinuxのみをサポートしていますか?
Bhargav Nanekalva


macOSのようなLinuxに似たオペレーティングシステムで動作する場合があります(多くの人が開発のためにそれを行います。たとえばgithub.com/weprovide/valet-plusを参照してください)。ただし、公式にはサポートされていないため、予期しない非互換性が生じる可能性があります。
スコットブキャナン

22

私の場合、既存のMagento 2データベースをインポートしていました。エラーが発生した理由は、データベース内のCookieドメインが原因でした。データベースに移動して、表を調べますcore_config_data。というパスが表示されweb/cookie/cookie_domainます。ドメインがMagento 2をインストールしたドメインと一致することを確認してください。例:local.dev/<magento-root> エントリにMagento 2をインストールした場合は、にweb/cookie/cookie_domainなりますlocal.dev


これは、同様に...私の問題だった
Giel Berkers

メールの理由です
アミットベラ

1
select * from core_config_data where where path like "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 1magento config:set web/secure/use_in_frontend 1
コリン・

9

localhostにmagento2をインストールする際、ステップ3でローカルホストの代わりにストアアドレスに127.0.0.1を使用してみてください。ここでできることは、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/

キャッシュをクリアして今すぐチェック

編集済み:-

スクリーンショットに示すように、ステップ3でストアのアドレスに127.0.0.1をインストールしてみてください

ここに画像の説明を入力してください


私はクローム、私も明らかキャッシュ、ない結果となりましたFirefoxで働い同じ変更、magento2管理を行わなく
ディネッシュ

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が異なるため、問題のヒントが得られます。


私はOPとほとんど同じ問題を抱えていますが、これらの変数をチェックすると、さらに質問が発生します-キーは毎回異なるため、2つのURLは一致しません。キーなしでURLをロードしようとすると(admin/たとえば)、キーを持つURLに対してそれをチェックし、キーを持つ別のURLにリダイレクトします。これは別のキーを持つURLに対してチェックされますか?
ジェームズ

右、カスタム管理URLの使用に関するバグ/設定ミスのようです-env.phpでこれを「admin」にリセットすると問題が解決しました!
ジェームズ

2

var / cacheフォルダーをきれいにしてみてください。それはわたしを助ける。


これは最後の人生の試みとして私を助けた.. @karickに感謝
バイト

0

上記の問題を解決するより良い解決策があります。

.htaccessファイルを開きます

行を見つける

 #RewriteBase / magento /

問題に応じて、次のように行のコメントを解除します

  RewriteBase / magento2 /  

注-:.htaccessファイルを保存します。すべてのvar / cacheおよびブラウザーキャッシュを消去します。



0

localhostスタンドアロンではなく、実際のトップレベルドメインとして使用すると、これを管理できるはずです。.devこの記事で説明されているように、使用することはお勧めできません:https : //iyware.com/dont-use-dev-for-development/

http://magento.localhost/適しているかDOMAIN.com、後で展開するものがある場合はDOMAIN.localhost、DOMAIN.comで終了し、使用するTLDに関係なくホスト名を検索するようにWebサーバーをコーディングできます。

例:DOMAIN1.comとDOMAIN2.comに2つのストアがある場合、DOMAIN1.*DOMAIN1固有のコードを評価するコードに関して、nginx conf(または選択したWebサーバー)にルールを入力します。Apache SetEnvIf Host DOMAIN1\.(localhost|com)$ VAR=valでは、.htaccessファイルで次のようなものを使用できます。


0

一部のシナリオでは、Magento2インストールに固有のCookieを削除し、Magentoキャッシュファイルをクリアvar/cacheすると、この問題が解決します。


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

次に、キャッシュをクリアし、管理URLをリロードします。


0

私はトピックに8時間を費やしました、ここに私の結論があります

1)少なくとも.htaccessファイルを読み取るために、apacheディレクトリ設定でAllowOverride allを設定します。magentoフォルダーは、frontoffice && backofficeを機能させるためのユニバーサルソリューションです。

2).htaccessでRewriteBase /を設定するか、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 WHERE path in( ' web / secure / use_in_adminhtml ')"

php bin / magento cache:flush

4)それだけです。一見したところ、たくさんの間違った推測をすべて削除しました。



0

別の注意点は、Webサーバーエンジン(nginx / apache)がSSLポート443でリッスンし、証明書が構成されていることです。これは、他の回答ですでに述べたアドバイスとともに、私にとっての問題でした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.