由於Microsoft Internet Explorer和Microsoft Edge不支持內容安全策略版本2,或者在IE的情況下根本不支持它,所以我想基於用戶代理更改內容安全策略。這對PHP來說相當簡單,但我想用.htaccess文件來做到這一點。問題是;這是可能的和如何。到目前爲止,我發現了很多重寫規則,但沒有這樣做的mod_headers。是否可以根據htaccess中的UAGENT設置標題
搜索是這樣的:
Header set Content-Security-Policy: ...
<UserAgentMatch "(Edge|Internet Explorer)$">
Header unset Content-Security-Policy
</UserAgentMatch>
任何人都有一個想法,我怎麼才能如果有可能做到這一點,?
UPDATE:
Walf的答案給出了一個內部服務器錯誤,但一些經過細化和微調導致的解決方案。對於那些尋找相同的代碼如下。
<If "%{HTTP_USER_AGENT} !~ /(MSIE|Edge)s*/i">
header always set Content-Security-Policy "..."
</If>
你的正則表達式仍然是錯的,你的關鍵字前失去了空間,你正在尋找一個文字上的's',即它將匹配單詞'Wedges'。你是否試過雙反斜槓,因爲它們在引用的字符串中?嘗試'<如果「%{HTTP_USER_AGENT}!〜/ \\ s +(?: MSIE \\ s + \\ d | Edge \\ /)/」>' – Walf