2010-10-29 66 views
2

正如標題所說,我想使用XHTML爲我的首頁,我想使用Internet Explorer瀏覽器的訪問者重定向到一個不同的頁面(一個。用更少的內容HTM,說:「你正在使用IE,堅韌tittie」)。重定向IE瀏覽器中使用的.htaccess(遠離的XHTML)

由於IE自動下載應用程序/ XHTML文件,我不能這樣使用JavaScript和諸如此類的東西,所以我覺得唯一的選擇就是使用的.htaccess。但經過近2個小時的谷歌搜索類似的帖子htaccess的例子,我仍然無法得到它的工作,我得到403或500在IE瀏覽器和鉻/火狐瀏覽器..

這是我最後嘗試:

<IfModule mod_rewrite.c> 
Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_USER_AGENT} "MSIE 5" [OR] 
RewriteCond %{HTTP_USER_AGENT} "MSIE 6" [OR] 
RewriteCond %{HTTP_USER_AGENT} "MSIE 7" [OR] 
RewriteCond %{HTTP_USER_AGENT} "MSIE 8" 
RewriteRule ^(.*)$ http://www.mypage/index.IE.htm 
</IfModule> 

無論如何,使之更清楚,我想我的.htaccess做到這一點:

if(whoever_accesses_my_page is anyVersionOf_IE) 
    set_index("http://www.mypage/index.IE.htm"); 
else 
    set_index("http://www.mypage/index.xhtml"); 

回答

1

碰運氣(可能是因爲我不知道的.htaccess)的很多後我已經想通了:

RewriteEngine on 
RewriteCond %{HTTP_USER_AGENT} .*MSIE.* 
RedirectMatch ^/$ index.IE.htm 
DirectoryIndex index.xhtml 

當有人訪問「http://www.yoursite.com/optionalFolder/」時,上面的代碼將會有效。如果訪問者是任何形式的Internet Explorer超過版本4,則會從那裏重定向到index.IE.htm,否則(如果您不是IE)則訪問index.xhtml。


我還發現了一個巧妙的方法來獲取Internet Explorer實際讀取相同.xhtml爲text/html,所以你不會有保持的同一部位的2個獨立的版本:

RewriteEngine on 
RewriteCond %{HTTP_USER_AGENT} .*MSIE.* 
RewriteCond %{REQUEST_URI} \.xhtml$ 
RewriteRule .* - [T=text/html] 

當有人訪問「http://www.yoursite.com/ anyPageName.xhtml」時,此代碼段有效。如果是Internet Explorer,則它將覆蓋文檔類型爲text/html而不是application/xhtml + xml。否則,任何其他瀏覽器都會正常打開xhtml。


問:我怎樣才能片段#2爲剛剛的目錄路徑的URL工作的?

(它只適用於「http://www.yoursite.com/ pageName.xhtml」;我怎樣才能讓它爲「http://www.yoursite.com/optionalFolder/」工作? )

換句話說,DirectoryIndex index.xhtml不片段#2工作(它壓倒了IE的重寫規則,如果我添加的DirectoryIndex,IE就會自動下載XHML)