Apache mod_标头无法取消设置路径上的标头
我试图在Apache中使用mod_头来设置头,除了某个路径之外的所有情况。我已经尝试了下面三种变体中的每一种,但是它们似乎都不能正确地排除路径。在所有情况下,我都会获得所有请求的标题,包括与示例路径匹配的请求,例如:Apache mod_标头无法取消设置路径上的标头,apache,http-headers,response-headers,mod-headers,setenvif,Apache,Http Headers,Response Headers,Mod Headers,Setenvif,我试图在Apache中使用mod_头来设置头,除了某个路径之外的所有情况。我已经尝试了下面三种变体中的每一种,但是它们似乎都不能正确地排除路径。在所有情况下,我都会获得所有请求的标题,包括与示例路径匹配的请求,例如: ... SetEnvIfNoCase请求\u URI“^/charts/*”frameallow 标题集X-Frame-Options SAMEORIGIN env=!框架允许 ... 或: ... 标题始终设置X-Frame-Options SAMEORIGIN 标题始终未
...
SetEnvIfNoCase请求\u URI“^/charts/*”frameallow
标题集X-Frame-Options SAMEORIGIN env=!框架允许
...
或:
...
标题始终设置X-Frame-Options SAMEORIGIN
标题始终未设置X帧选项
...
或
...
标题始终设置X-Frame-Options SAMEORIGIN
标题始终未设置X帧选项
...
#在所有配置中尝试使用和不使用“始终”
有人能帮我弄清楚为什么在第一个示例中设置了标题,或者在接下来的两个示例中没有取消设置标题吗?任何一个可行的解决方案都足够了
更新:
在阅读了Apache站点上的处理顺序之后,我尝试使用条件块。这两种方法都不起作用:
<If "%{REQUEST_URI} =~ m#^/charts#">
Header unset X-Frame-Options
</If>
标题未设置X帧选项
或
SetEnvIfNoCase请求\u URI“^/charts”frameallow
标题未设置X帧选项
所以,还是坏了。必须是关于头语句在处理过程中的某个点后不触发的内容。或者是条件中的那些在主命令之前触发并被覆盖。但无法找到将其调试到根本原因的方法。使用表达式响应标题
Header always set Access-Control-Allow-Origin * "expr=%{REQUEST_URI} =~ m#^/specialPath$#"
这可能会在expr=true
在标题指令部分的底部用表达式响应标题
Header always set Access-Control-Allow-Origin * "expr=%{REQUEST_URI} =~ m#^/specialPath$#"
这可能会在expr=true
在标题指令的底部经过更多的挖掘,我发现其他一些地方也没有回答这个问题。包括这里和这里:看起来这是一个长期存在的问题,但仍在试图找到问题的根源。有人能帮忙吗?经过更多的挖掘,我发现其他一些地方也没有答案。包括这里和这里:看起来这是一个长期存在的问题,但仍在试图找到问题的根源。有人能帮忙吗?
<If "%{REQUEST_URI} =~ m#^/charts#">
Header unset X-Frame-Options
</If>
SetEnvIfNoCase Request_URI "^/charts" frameallow
<If "reqenv('frameallow') == 1">
Header unset X-Frame-Options
</If>
Header always set Access-Control-Allow-Origin * "expr=%{REQUEST_URI} =~ m#^/specialPath$#"