特定の IP が Apache にアクセスした場合、その HTTP ヘッダーを削除するにはどうすればよいですか?

特定の IP が Apache にアクセスした場合、その HTTP ヘッダーを削除するにはどうすればよいですか?

特定の IP アドレスから Web サイトにアクセスしたときに、単一または複数の HTTP ヘッダーを設定解除するにはどうすればよいですか? CSP 構成により、一部のローカル ページが正しく読み込まれないためです。たとえば、phpMyAdmin を持っていても、CSP が設定されているためローカルで使用できない場合などです。

答え1

次の設定を使用すると、IP アドレスに応じてヘッダーを設定解除できます。

# For single ip address. Change the IP address to your needs
<Directory "/path/to/the/folder/which/needs/to/have/this/feature">
<If "%{REMOTE_ADDR} == '127.0.0.1'">
Header always unset HeaderName
</If>
</Directory>

# For multiple IP addresses, remove the top one, and use this one, and change the IP addresses
# to your needs, and add more '||' to use more IP addresses.
<Directory "/path/to/the/folder/which/needs/to/have/this/feature">
<If "%{REMOTE_ADDR} == '127.0.0.1' || %{REMOTE_ADDR} == '1.2.3.4'">
Header always unset HeaderName
</If>
</Directory>

mod_headersが有効になっていることを確認してください。詳細については詳しくは、http://httpd.apache.org/docs/2.4/mod/core.html#if をご覧ください。そして詳しくはこちら

必要に応じて設定できますが、注意して、自分以外のすべてのユーザーに対して CSP などのヘッダーを無効にしないようにする必要があります。

答え2

Headerディレクティブが機能しない場合は、代わりに ディレクティブを使用します。以下は、Apache がリバース プロキシとして使用されている場合に、ヘッダーRequestHeaderのスプーフィングを防止する方法の例です。この場合、は効果がありません。X-Forwarded-ForHeader

RequestHeader unset X-Forwarded-For
RemoteIPHeader X-Forwarded-For

関連情報