2012-08-29 85 views
0

我寫重定向非IE用戶的htaccess

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] 

但沒有奏效。

我該如何讓它工作?

回答

0

您使用了錯誤的變種。 %{HTTP_HOST}與主機名匹配,而不是文件夾。我想你想是這樣的:

RewriteCond %{HTTP_USER_AGENT} !.*MSIE.* 
RewriteRule ^/?IE /404.html [R=404,L] 

注意,R=404迫使404響應,它實際上並不重定向你的任何地方。

+0

爲什麼'''在'/'之後? – Mageek

+0

@Mageek它表示匹配零或一個'/'。在.htaccess文件中,前面的斜槓被刪除了,所以'^'後面不需要'/',但是在服務器和vhost配置中,前面的斜槓留在那裏,所以你需要'/' '^'。在你的情況下,因爲它在一個htaccess文件中,你根本不需要斜線 –

1

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] 
+0

我寫'的RewriteCond%{HTTP_USER_AGENT}!* MSIE。* 的RewriteCond%{HTTP_HOST}/IE 重寫規則。* unexistantpage.html [L]'和它沒有工作... – Mageek

+0

嘗試在代碼我的編輯 – Oussama