2011-11-17 18 views
1

我看到移動版本的網站通常以「m」開頭。 (例如http://m.accuweather.com)。我想將我的移動用戶重定向到http://m.mysite.com,以便我可以顯示不同的頁面。在PHP和jQuery中檢測移動設備和Feeding頁面的標準做法

  1. 向移動設備提供移動版網站的標準實踐方式是什麼?是否在服務器端(如果甚至可能的話)或客戶端檢測到設備的類型?
  2. 如何檢測移動設備是否在服務器端(使用PHP)和客戶端(使用jQuery)訪問站點?
  3. 是否有可能檢測到它是否是Apache級別的移動設備?或者,我是否會經常使用PHP腳本來檢查它是否是移動設備並重定向到相應的頁面版本?
+0

http://stackoverflow.com/questions/1005153/auto-detect-mobile-browser-via-user-agent –

回答

3

最簡單的方法是檢查用戶代理,可通過$_SERVER['HTTP_USER_AGENT']獲得。雖然客戶端可以發送任何字符串,但如果用戶不是(如果他們這樣做 - 不是你的問題),他們通常不會假裝成移動瀏覽器。

+0

下面是一些很好的答案的問題關於如何做到這一點:http://stackoverflow.com/questions/1005153/auto-detect-mobile-browser-via-user-agent(還有,你的第二句話+1) – Jasper

1

我會做這個客戶端。無需爲此在服務器上增加額外的負載。它可以通過JavaScript或jQuery完成(並且有很多教程)。例如:

http://detectmobilebrowsers.com/

Auto detect mobile browser (via user-agent?)

餵養可以做槽新的移動標籤(或@media)和一些乾淨的HTML5。例如:

http://www.html5rocks.com/en/mobile/mobifying.html

http://webdesign.about.com/od/mobile/a/detect-mobile-devices.htm

+1

背後的理由是什麼「沒有需要給你的服務器增加額外的負載。「?無論哪種方式,你的服務器將不得不處理重定向,你最好儘可能在服務器端儘可能地做到這一點,這樣用戶就不必下載一個頁面,只需要重定向到另一個頁面即可。這對於移動網站來說更爲重要,因爲帶寬很可能會受到用戶的限制。 – Jasper

+0

並非如此,您可以使用html5緩存與清單來保持帶寬順序。另外,如果你正在構建funcs客戶端來檢測它是否是移動設備,我不明白你爲什麼要這麼做。在jquery/javascript中,您不必在重定向之前下載整個頁面... – Kim

+0

我在說的帶寬使用情況是:「用戶在輸入他們的網站後需要多長時間才能看到您的網站地址欄。」如果服務器向瀏覽器發送重定向頭,則可以實現最少的時間(這也會消除解析時間)。我不確定你的意思是「構建funcs客戶端」,但是有一些很好的預編碼服務器端軟件包用於重定向移動用戶。 – Jasper

相關問題