2012-12-14 27 views

回答

8

當然可以!您只需查看用戶代理並在條件滿足時執行重定向。

RewriteEngine On 

RewriteCond %{HTTP_USER_AGENT} "android" [NC] 
RewriteRule ^(.*)$ /android/$1 [L,QSA] 

RewriteCond %{HTTP_USER_AGENT} "iphone|ipod|ipad" [NC] 
RewriteRule ^(.*)$ /ios/$1 [L,QSA] 

讓我分解這裏發生了什麼。首先,我們確保RewriteEngine已打開(v.important)。 RewriteCond這兩行是必須滿足的條件,這些條件必須符合強制執行的規則。在我們的情況中,條件是在發出請求的設備的用戶代理中出現某些關鍵字。第一個條件匹配單詞「android」,第二個匹配任何字符串「iphone」,「ipod」,「ipad」。文本匹配使用regular expressions完成。

每個RewriteCond之後的行是根據其設備執行URL重寫(對最終用戶來說顯示爲重定向)的實際規則。該規則表示採取整個請求(再次使用正則表達式)並添加到開頭/android/ios。您看到的$1表示正在被重寫的實際請求字符串。

  • [NC]意味着匹配是不區分大小寫的(無的情況下)。 IE Android == aNdroidIOS == iOS
  • [L]意味着當前規則是最後一個,並且沒有其他條件或規則被執行。 如果你只是在尋找的是Android和iOS設備之間的區別,你可以用簡單的androidiphone/ipad/ipod逃脫。如果您想要檢測特定設備,則必須更具體地匹配其用戶代理。
+0

好吧,這是個竅門,現在唯一的問題是它不會加載圖像。無法找到解決方案。當我訪問鏈接它確實工作。 – user1904812

+0

@use - 現在試一試,我對代碼做了一些小調整。 – Lix

+0

太棒了!你救了我的一天thnx! – user1904812