2017-07-21 54 views
1

由於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> 

+0

你的正則表達式仍然是錯的,你的關鍵字前失去了空間,你正在尋找一個文字上的's',即它將匹配單詞'Wedges'。你是否試過雙反斜槓,因爲它們在引用的字符串中?嘗試'<如果「%{HTTP_USER_AGENT}!〜/ \\ s +(?: MSIE \\ s + \\ d | Edge \\ /)/」>' – Walf

回答

1

嘗試設置頭只有當它的這些瀏覽器?

<If "%{HTTP_USER_AGENT} !~ /\s+(?:MSIE\s+\d|Edge\/)/"> 
    Content-Security-Policy: ... 
</If> 
+0

似乎可以進行一些小的調整。謝謝 – RvdM

相關問題