2017-05-04 16 views
1

私はhtaccess httpsリダイレクトに奇妙な問題があります。htaccessリダイレクトループが生産現場と異なる

私は自分のローカルバージョンとプロダクションを持っています。

今私は2つのバージョンのhtaccessをそれぞれ1つの環境でうまく動作させ、もう一方のリダイレクトループを作成します。

この1つは、生産に適しています:

RewriteEngine On 
RewriteCond %{HTTP:X-Forwarded-Proto} https 
RewriteRule (.*) - [L] 
RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI} [L,R] 

とこの1つは問題が何であるかをローカル

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

任意のアイデアに適していますか?

ありがとうございます!

+0

プロダクションのApacheはプロキシの背後にあるようです。 – anubhava

+0

@anubhavaはい、それは適切な単一のhtaccessファイルを作る方法に関するアイデアですか? –

+0

開発と運用でApache 2.4を使用していますか? – anubhava

答えて

1

REQUEST_SCHEME変数を使用して、この状態では、Apache 2.4+のために働く必要があります。

RewriteEngine On 

RewriteCond %{HTTP:X-Forwarded-Proto} !=https 
RewriteCond %{REQUEST_SCHEME} =http 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] 

この変更をテストする前にブラウザのキャッシュをクリアすることを確認します。

+0

これはプロダクションサーバー上のリダイレクトを引き起こし、今はプロキシではないことを理解しています。シンプルなサーバーです。 このコードはローカルで有効ですが、プロダクションサーバ –

+0

ではリダイレクトループがブラウザキャッシュをクリアした後に更新されたルールを試しています。 – anubhava

+0

あなたが条件を精緻化することができればそれは素晴らしいことでしょう!ありがとう。 –

関連する問題