1

因为 microsoft internet explorer 和 microsoft edge 不支持内容安全策略版本 2,或者对于 IE,根本不支持它,我想根据用户代理更改内容安全策略。这对 PHP 来说相当简单,但我想用 .htaccess 文件来做到这一点。问题是; 这是否可能以及如何。到目前为止,我发现了很多重写规则,但没有 mod_headers 这样做。

寻找这样的东西:

Header set Content-Security-Policy: ...

<UserAgentMatch "(Edge|Internet Explorer)$">
   Header unset Content-Security-Policy
</UserAgentMatch> 

任何人都知道我该如何做到这一点,如果可能的话?

更新:

Walf 的答案给出了内部服务器错误,但经过一些微调后得到了解决方案。对于那些寻找相同的人,请参阅下面的代码。

 <If "%{HTTP_USER_AGENT} !~ /(MSIE|Edge)s*/i">
   header always set Content-Security-Policy "..." 
 </If>

4

1 回答 1

1

仅当不是那些浏览器时才尝试设置标题?

<If "%{HTTP_USER_AGENT} !~ /\s+(?:MSIE\s+\d|Edge\/)/">
    Content-Security-Policy: ... 
</If>
于 2017-07-22T01:24:27.613 回答