2014-05-21 117 views
0

我稱之爲一個網站移動設備重定向到桌面版使用的htaccess

www.example.com 

我有一個移動網站名爲

m.example.com 

首先,我想從桌面版移動網站自動重定向(如果它只是手機..我想檢測所有移動版本)

然後我想使用htaccess自動將主網站的URL重定向到移動版本。 然而,在移動版的鏈接指向回叫

www.example.com/?nm=1主網站(nm意味着nomobile

我想設置cookie的這一個.. (redirect to desktop site from mobile site)

如果用戶過了一段時間之後再次來..我想檢查高清曲奇.. (check www.example.com/?nm=1 set cookie earlier)如果沒有曲奇自動重定向到移動版本...如果有cookie想留在桌面版本。

如何通過不帶JavaSCript的htaccess來完成此操作。

+0

將這個長問題分成多個小問題會更好。 – anubhava

+0

這部分已經在這裏得到解答:http://stackoverflow.com/questions/3680463/mobile-redirect-using-htaccess/ – invot

回答

1

This answer爲您解決部分問題。就像那個答案一樣,我不會爲你提供一個用戶代理列表。找到適合您的列表,並將其放入規則中。移動設備類型,移動設備中的瀏覽器等不斷變化,這個答案在我發佈之前會過時。如果cookie「nomobile」設置爲「1」,則需要稍微修改該規則以防止匹配。您需要一條規則,在網址中查看「nm = 1」並設置Cookie。你可能也想要對那個oookie進行某種重置,我標記爲「nm = 0」。

RewriteCond %{QUERY_STRING} nm=1 
RewriteRule^- [CO=nomobile:1:localhost:10000] 

RewriteCond %{QUERY_STRING} nm=0 
RewriteRule^- [CO=nomobile:0:localhost:10000] 

RewriteCond %{HTTP_USER_AGENT} ^(user-agent1|user-agent2|user-agent3|etc)$ 
RewriteCond %{HTTP_HOST} !^m\.example\.com$ 
RewriteCond %{HTTP_COOKIE} !nomobile=1 
RewriteRule ^(.*)$ http://m.example.com/$1 [R,L] 

請爲CO-標誌您的特定網站的正確用法檢查the documentation for cookies。上面的代碼沒有經過測試,但理論上它應該工作。

+0

感謝您的幫助 – user3501407