(単純なAmazon)ロードバランサーの背後にApacheサーバーがあります。 443以外の受信トラフィックを443にリダイレクトしたいのですが、Apache仮想ホストを1つだけ使用することをお勧めします。したがって、HTTP_X_FORWARDED_PORTヘッダーが443でない場合、それを検出しようとしています。
私は RewriteCond docs を確認しましたが、これは限られたHTTPヘッダーのセットでのみ機能します。
基本的に私がやっていることはこれです:
<VirtualHost *:80>
ServerName www.example.com
RewriteEngine On
RewriteCond %{HTTP_X_FORWARDED_PORT} !=443
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
....
</VirtualHost>
ただし、RewriteCondはHTTP_X_FORWARDED_PORTを認識しません。
これを達成する他の方法はありますか(1つのVirtualHostで)? (何らかのタイプの受信ヘッダーチェック?)
おかげで、ランス
RewriteCond
ドキュメントの少し下:
%{HTTP:header}
、ここでヘッダーは任意のHTTP MIMEヘッダー名にすることができます
そのため、事前抽出されたヘッダーとまったく同じ形式ではなく、それを行うことができます。
これを試して:
RewriteCond %{HTTP:X-Forwarded-Port} !=443
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]