サイトは実稼働環境で実行されており、オンライン ステージング環境に移動して操作している間も、実稼働環境で維持する必要があります。
すべてのファイルを移動し、ホスト ファイルを次のようにステージング サーバーにポイントしました: 123.123.123.12 example.org
。ステージング サーバーの IP は次のとおりです: 123.123.123.12
。
訪問するhttp://example.org
とすぐににリダイレクトされますhttps://example.org
が、SSL 証明書は実稼働環境を使用して作成されているため、さまざまな問題が発生します。そのため、接続が安全ではないことが通知されます。
私はこれでかなり遊んでみました。今はリダイレクト ループに入っていて、http://
とhttps://
-version の間を行ったり来たりしています。
リクエストは次のように「移動する」と想定します。
(step 1) (step 2) (step 3)
Visit http://example.org -> Browser -> Apache -> Browser -> Result (https://example.org)
したがって、ステップ 1、2、または 3 のいずれかのどこかでこのリダイレクトが行われます。
大きな包括的な質問:この 302 リダイレクトがどこから来ているのかを調べて、それを無効にし、 経由で自分のサイトにアクセスするにはどうすればよいでしょうかHTTP://
?
試行1 - ブラウザがそれを実行していないことを確認する
最初に試したのは:
- 開発者ツールを開いた状態で (ネットワーク タブ -> キャッシュを無効にするにチェックを入れます)。
- シークレットブラウザから
- キャッシュされたデータや Cookie などをすべて消去し、ブラウザを再起動します。
- 別のブラウザから試してください。
ChromeとFirefoxはどちらも本当にプッシュしますhttps
。そこで私は「httpsの強制」を無効にする方法をGoogleで検索しました。簡潔なバージョンそして詳細版いずれも何も変更しませんでした (まだリダイレクトされます)。
試行2 - VirtualMinで自動リダイレクトを無効にする
ここでこれが起こります:
「システム設定」 -> 「Virtualmin 構成」 -> 「SSL 設定」 -> 「デフォルトで HTTP を HTTPS にリダイレクトする」のチェックを外す
ソース。
奇妙なことに、この後リダイレクト ループが始まりました。
.conf
そして、これはサーバー上のすべてのドメインのファイルにいくつかの行を追加するだけだと思います。
試行3 -.htaccess
ファイルがポート80からのトラフィックをキャッチすることを確認する
次の行を追加しました:
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
...ここで見つかりました。
同じこと。
試行4 - Apacheセットアップに追加のログを追加する
リダイレクト元に関する情報が見られるかもしれないと思った。 をいじってログを追加してみた/etc/apache2/sites-enabled/example.org.conf
が、何も得られなかった。この郵便受けただし、これは古くなっています (賛成のコメントを参照してください)。