apache通過.htaccess(rewrite)判斷手機電腦跳轉?

Tags: 網站,

現在使用手機上網的用戶越來越多,傳統的網站模式顯然不適合手機用戶,這就需要專們為手機用戶定製一個合適瀏覽的手機專屬網站,網站雖然好建,自己寫個手機模板,或者抓取現成大站的手機模板改改就行,但做好後如何讓手機用戶打開網站時自助跳轉到手機網站、電腦用戶打開手機網站時自動跳轉到普通網站呢?

本文介紹瞭如何使用apache的mod_rewrite模塊修改.htaccess文件判斷訪問終端類型並重定向的方法。

非程序代碼(No php,asp,.net,jsp),當然代碼也可以實現,但感覺沒有這種方法便捷省事。

工具/原料

apache

mod_rewrite

.htaccess

電腦站

手機站

方法/步驟

首先要確實服務器是使用apache服務來提供Web服務的,並加載了mod_rewrite模塊,具體加載mod_rewrite模塊方法,網上有詳細教程,請自行百度。

apache通過.htaccess(rewrite)判斷手機電腦跳轉

讓apache服務器支持.htaccess

只要簡單修改一下apache的httpd.conf配置就可以讓APACHE支 持.htaccess了:AllowOverride None 修改為: AllowOverride All

apache通過.htaccess(rewrite)判斷手機電腦跳轉

啟用.htaccess後,在現有普通網站基礎上,再新建一個手機網站,也可以在現有網站根目錄下新建子目錄,如現有網站為www.baidu.com,新建手機站為m.baidu.com,或者新建子目錄方式:www.baidu.com/m/

普通站和手機站使用相同數據庫,程序相同,只是顯示用的模板不同。

apache通過.htaccess(rewrite)判斷手機電腦跳轉

***在普通網站根目錄下新建 .htaccess 文件:

# 將 RewriteEngine 模式打開RewriteEngine OnRewriteBase /# Rewrite 規則 判斷用戶瀏覽器類型,如果是手機就跳轉到手機網站RewriteCond %{HTTP_USER_AGENT} "(baidu.Transcoder mini android blackberry googlebot-mobile iemobile Mobile ipad iphone ipod opera mobile palmos webos ucweb Windows Phone Symbian hpwOS)" [NC]RewriteRule ^(.*)$ http://m.baidu.com/$1 [L,R=302]

上面的代碼,自動判斷手機用戶然後跳轉到手機網站,並帶有相同的參數,如手機用戶輸入的網址是http://www.baidu.com/index.php?go=1那麼系統跳轉時會自動加上參數

apache通過.htaccess(rewrite)判斷手機電腦跳轉

這裡需要說明下,因為RewriteRule ^(.*)$ [L,R=302]的加入,如果手機頁面中有需要訪問非手機網站資源時,如其他子目錄或二級網內容,就需要設置相應正則排除指定網站或文件,如: RewriteRule ^(.*?(?

RewriteCond %{HTTP_HOST} !^img.baidu.com [NC]RewriteCond %{HTTP_HOST} !^ditu.baidu.com [NC]RewriteCond %{HTTP_USER_AGENT} "(baidu.Transcoder mini android blackberry googlebot-mobile iemobile Mobile ipad iphone ipod opera mobile palmos webos ucweb Windows Phone Symbian hpwOS)" [NC]RewriteRule ^(.*)$ [L,R=302]

上面的意思就是,如果不是訪問img.baidu.com,ditu.baidu.com的手機用戶才跳轉到m.badu.com。

apache通過.htaccess(rewrite)判斷手機電腦跳轉

***電腦訪問手機網站時跳轉:

手機網站根目錄下新建 .htaccess 文件:

# 將 RewriteEngine 模式打開RewriteEngine OnRewriteBase /# Rewrite 規則 判斷用戶瀏覽器類型,如果是電腦用戶就跳轉到普通網站RewriteCond %{HTTP_USER_AGENT} "!(baidu.Transcoder mini android blackberry googlebot-mobile iemobile Mobile ipad iphone ipod opera mobile palmos webos ucweb Windows Phone Symbian hpwOS)" [NC]RewriteRule ^(.*)$ [L,R=302]

這樣,在手機網站下,如果是電腦用戶訪問了,就自動跳轉到普通網站,讓用戶更適合瀏覽。

apache通過.htaccess(rewrite)判斷手機電腦跳轉

注意事項

熟悉Rewrite規則配置

相關問題答案