為傳統網站添加手機版以後,剛開始手機版可能沒有什麼流量,可以采取兩個辦法來促進:
- 在傳統網站的頁面中(一般是頁面底部)添加切換到手機版的鍊接;
- 在服務器上設置自動判斷來訪者終端,手機用戶就直接重定向到手機版。
第一個辦法做起來很簡單,由用戶自行點擊切換,帶來的流量是逐步的;而第二個辦法需要在服務器上進行一些設置,自動切換,更自動提高手機用戶體驗,帶來的流量也會更多、更快。
自動判斷、重定向的辦法也有幾種:
- 使用網站構建的程序(例如PHP)來判斷、重定向;
- 使用服務器上的Web服務(例如Apache)來判斷、重定向。
在去年做的郵編庫手機版中,采用了第一種辦法,在原有MediaWiki搭建的郵編庫網站中的部分頁面嵌入了判斷、重定向的PHP程序;近期做的網站添加手機版工作基本上是電腦版的每個網頁都在手機版上有對應的頁面,所以更适合采用第二種辦法,也就是在Apache中設置重定向。
在Apache中設置重定向有兩個辦法:
- 在網站的httpd.conf中設置重定向,适合有服務器完整權限的網站管理員;
- 在網站所在目錄中修改.htaccess來設置,适合采用虛拟主機形式的網站管理員。
這兩種辦法設置的重定向規則其實基本上都是一樣的,隻是設置的地方不同,下面給出重定向設置的代碼例子:
RewriteCond %{HTTP_HOST} ^www\.wenbanzhu\.com(.*)$
RewriteCond %{HTTP_REFERER} !^http\:\/\/(m|www)\.wenbanzhu\.com(.*)$
RewriteCond %{HTTP_USER_AGENT} !ipad [NC]
RewriteCond %{HTTP_ACCEPT} “text/vnd.wap.wml|application/vnd.wap.xhtml+xml” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “dang|doco|erics|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “wapp|wapr|webc|winw|winw|xda|xda-” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “up.browser|up.link|windowssce|iemobile|mini|mmp” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “symbian|midp|wap|phone|pocket|mobile|pda|psp” [NC]
RewriteCond %{HTTP_USER_AGENT} !macintosh [NC]
RewriteRule ^(.*)$ http://m.wenbanzhu.com/$1 [L,R=302]
注釋:
- 第一句通過是HTTP_HOST判斷網站的域名,看是否就是要判斷的網站;
- 第二句是通過HTTP_REFERER判斷來源路徑,如果是自身傳統網站或手機網站就不跳轉;
- 第三句開始是通過HTTP_USER_AGENT來判斷浏覽者所用設備是否為手持設備,其中有一句是通過HTTP_ACCEPT判斷代碼類型,并在開頭和結尾排除掉ipad和macintosh;
- 最後一句是302重定向到相應的手機版頁面。
實際使用中可能會根據具體情況對上面的代碼進行一些修改,最好能理解和掌握Apache的Rewrite規則才好靈活運用。
以上的例子可以這樣驗證:用手機浏覽“問版主電腦版”(http://www.wenbanzhu.com),看是否自動跳轉到“問版主手機版”(http://m.wenbanzhu.com)。
2013年5月補充:在判斷跳轉的條件中加入百度轉碼的user-agent: baidu.Transcoder,就可以讓百度抓取時知道手機版的網址,并且不再自行進行轉碼。百度關于禁止轉碼的說明請看我的另外一篇博文《禁止百度WEB頁面到手機WAP的轉碼》,用上面的辦法就是百度說明中的辦法C。
评论