Apacheは条件付きでカスタムHTTPヘッダーから書き換えを実行できますか?


12

(シンプルなAmazon)ロードバランサーの背後にApacheサーバーがあります。443から443以外の着信トラフィックをリダイレクトします。1つのApache仮想ホストのみを使用することを希望します。したがって、HTTP_X_FORWARDED_PORTヘッダーが443でない場合、それを検出しようとしています。

RewriteCondのドキュメントを確認しましたが、限られた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で)?(ある種の着信ヘッダーチェック?)

ありがとう、ランス

回答:


13

RewriteCondドキュメントを少し下に:

%{HTTP:header}、ヘッダーは任意のHTTP MIMEヘッダー名にすることができます

そのため、事前に抽出されたヘッダーとまったく同じ形式ではありません。

これを試して:

RewriteCond %{HTTP:X-Forwarded-Port} !=443
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

1
SiteLock CDNによって渡されたヘッダーにIPアドレスがある別の例:RewriteCond %{HTTP:X-Forwarded-For} !=123.45.67.89
リアム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.