
Как мне отключить один или несколько заголовков HTTP, когда к моему сайту обращаются с определенного IP-адреса? Потому что моя конфигурация 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 включен. Для получения более подробной информации см.https://httpd.apache.org/docs/2.4/mod/core.html#ifиhttps://httpd.apache.org/docs/2.4/expr.html.
Вы можете настроить его в соответствии со своими потребностями, но будьте осторожны и убедитесь, что вы не отключаете заголовки, такие как CSP, для всех, кроме себя.
решение2
Если Header
директива не работает, используйте RequestHeader
вместо нее директиву. Вот пример того, как предотвратить подмену заголовка, X-Forwarded-For
когда Apache используется как обратный прокси-сервер, где это Header
не даст никакого эффекта:
RequestHeader unset X-Forwarded-For
RemoteIPHeader X-Forwarded-For