【问题标题】:In a .htaccess file, how to remove an HTTP response header only on a virtual folder?在 .htaccess 文件中,如何仅在虚拟文件夹上删除 HTTP 响应标头?
【发布时间】:2018-02-02 13:11:16
【问题描述】:

假设我有一个名为“foo”的 HTTP 响应标头,要包含在网站的每个响应中。

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

【问题讨论】:

  • "一个名为 "foo" 的标头" - 这是什么意思?在这种情况下,什么是“标题”?这个“标题”是如何包含在内的?
  • 它可以是任何标题,但在这种情况下,我想更改 Content-Secuirty-Policy 并在某个虚拟文件夹下定义新的安全策略规则。 CSP 是使用 .htaccess 中的简单“Header set Content-Secuirty-Policy ...”定义的

标签: .htaccess http-headers apache2.4


【解决方案1】:

为了删除之前已经在.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

【讨论】:

    猜你喜欢
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 2021-06-28
    相关资源
    最近更新 更多