RewriteCond %{HTTP_USER_AGENT} .*MSIE.*
RewriteRule .* /IE [R=403,L]
所有IE用戶重定向到文件夾中IE瀏覽器。
然後我試圖
RewriteCond %{HTTP_USER_AGENT} !.*MSIE.*
RewriteCond %{HTTP_HOST} /IE
RewriteRule .* 404.html [R=404,L]
但沒有奏效。
我該如何讓它工作?
RewriteCond %{HTTP_USER_AGENT} .*MSIE.*
RewriteRule .* /IE [R=403,L]
所有IE用戶重定向到文件夾中IE瀏覽器。
然後我試圖
RewriteCond %{HTTP_USER_AGENT} !.*MSIE.*
RewriteCond %{HTTP_HOST} /IE
RewriteRule .* 404.html [R=404,L]
但沒有奏效。
我該如何讓它工作?
您使用了錯誤的變種。 %{HTTP_HOST}
與主機名匹配,而不是文件夾。我想你想是這樣的:
RewriteCond %{HTTP_USER_AGENT} !.*MSIE.*
RewriteRule ^/?IE /404.html [R=404,L]
注意,R=404
迫使404響應,它實際上並不重定向你的任何地方。
R標誌只支持300到400之間的代碼,如果你想通過403 Forbidden錯誤,使用F標誌,如果你想通過404未發現錯誤,只是將用戶重定向到一個不存在的頁面。
編輯:
試試這個:
RewriteCond %{HTTP_USER_AGENT} !MSIE
RewriteRule ^IE unexistantpage.html [L]
或者,如果你想那麼禁止:
RewriteCond %{HTTP_USER_AGENT} !MSIE
RewriteRule ^IE - [F,L]
爲什麼'''在'/'之後? – Mageek
@Mageek它表示匹配零或一個'/'。在.htaccess文件中,前面的斜槓被刪除了,所以'^'後面不需要'/',但是在服務器和vhost配置中,前面的斜槓留在那裏,所以你需要'/' '^'。在你的情況下,因爲它在一個htaccess文件中,你根本不需要斜線 –