在.htaccess文件中,如何仅在虚拟文件夹中删除HTTP响应标头?

问题描述:

比方说,我有一个名为“foo”的HTTP响应标头将包含在网站的每个响应中。在.htaccess文件中,如何仅在虚拟文件夹中删除HTTP响应标头?

当用户请求/bar URL和其他每个以此路径开头的请求时,如何删除此标头?

+1

富 “ ”“ 一个叫头” - 你是什么意思?在这种情况下什么是“标题”?这个“标题”如何包含在内? – MrWhite

+0

它可以是任何头,但在这种情况下,我想更改Content-Secuirty-Policy并在某个虚拟文件夹下定义新的安全策略规则。 CSP在.htaccess中使用简单的“Header set Content-Secuirty-Policy ...”进行定义 – kant312

为了移除早先在.htaccess文件中已经设置的HTTP响应头,可以使用mod_rewrite在URL路径上有条件地设置环境变量,并使用它有条件地删除(或unset)HTTP响应标题。

例如:

RewriteEngine On 

# Set REMOVE_HEADER env var depending on the URL-path 
RewriteRule ^bar - [E=REMOVE_HEADER:1] 

# Unset the "foo" header if the REMOVE_HEADER is set 
Header unset foo env=REMOVE_HEADER