如何實現(xiàn)電腦版網(wǎng)站和觸屏版手機網(wǎng)站的頁面一一對應(yīng)跳轉(zhuǎn),是同時擁有電腦版網(wǎng)站和手機版網(wǎng)站的網(wǎng)站管理員需要考慮的問題:當(dāng)使用手機訪問電腦版網(wǎng)站的某一個具體頁面時能自動跳轉(zhuǎn)到對應(yīng)的手機版頁面。這個問題主要集中在用戶使用手機時,通過移動搜索搜索關(guān)鍵詞后,出來的頁面可能不適用于手機瀏覽。
這種情況下遇到的頁面,在手機上訪問有可能是亂七八糟、毫無美感可言,或者是直接顯示縮小版的電腦版網(wǎng)站,給網(wǎng)站訪問者瀏覽網(wǎng)站帶來極大的不便。這個時候我們就需要一個手機版的網(wǎng)站,而目前看來,更加流行的將是觸屏版手機網(wǎng)站。那么當(dāng)我們同時擁有了觸屏版網(wǎng)站和電腦版網(wǎng)站后,該如何做到自動跳轉(zhuǎn)呢?
通過搜索引擎里面的結(jié)果我們可以看到,大多數(shù)是直接采用JS、或者htaccess文件來實現(xiàn)跳轉(zhuǎn)。但是問題來了,當(dāng)使用手機訪問電腦版的某一個具體頁面時,跳轉(zhuǎn)程序會自動跳轉(zhuǎn)到手機版網(wǎng)站的首頁去。其實這里我們更加希望的是能夠跳轉(zhuǎn)到手機版網(wǎng)站對應(yīng)的具體頁面,而不是首頁。深圳網(wǎng)站建設(shè)公司創(chuàng)絡(luò)剛剛上線了我們自己的觸屏版網(wǎng)站,大家可以用手機試試在搜索引擎里搜索我們的網(wǎng)站,然后點擊頁面打開,看看是不是直接跳轉(zhuǎn)到對應(yīng)的頁面的?
那么,我們是如何做到的呢?從上面的圖片當(dāng)中,您應(yīng)該可以大概了解到業(yè)務(wù)處理流程,閱讀接下來的內(nèi)容可能需要一定的PHP程序基礎(chǔ):
首先我們需要通過程序獲取$_SERVER[?HTTP_USER_AGENT?]來判斷訪客的來訪方式,確定好是電腦還是手機(此處以手機為例,電腦訪問時道理是相通的),然后跳轉(zhuǎn),這里如果直接跳轉(zhuǎn),就不會跳轉(zhuǎn)到對應(yīng)的頁面去。但是我們可以在剛剛的程序上稍加處理,判斷當(dāng)前頁面的URL地址,排除主域名外得到的值,以當(dāng)前頁面為例,請注意瀏覽器的地址欄,那么本頁面得到的值應(yīng)該是/news_342.html。獲得的方式主要取決于服務(wù)器,不同的服務(wù)器將有不同的方法,例如可以使用$_SERVER[?REQUEST_URI?]獲得該值。然后跳轉(zhuǎn)的時候,直接跳轉(zhuǎn)至對應(yīng)的手機版域名+這個值的頁面去,不過在這之前,請一定做好數(shù)據(jù)適配(同步)工作,否則將出現(xiàn)404錯誤頁面。
關(guān)于$_SERVER[?REQUEST_URI?]是否支持偽靜態(tài)?
其實這個問法不是很標(biāo)準(zhǔn),部分網(wǎng)友在嘗試此操作的時候,發(fā)現(xiàn)在IIS環(huán)境下$_SERVER[?REQUEST_URI?]其實是不能有效獲得正確的值的,例如我們想要跳轉(zhuǎn)到news_342.html這個頁面去,而實際上會跳轉(zhuǎn)到偽靜態(tài)之前的頁面news.php?newsid=342。這時就需要我們專門針對這一個服務(wù)器來判斷該使用什么方法獲得偽靜態(tài)之后的值了,例如,可以嘗試使用$_SERVER["HTTP_X_REWRITE_URL"]。這二者之間是有一定的區(qū)別的,具體在使用時大家可以遵循這樣一個規(guī)律:IIS環(huán)境下用$_SERVER["HTTP_X_REWRITE_URL"],而Apache環(huán)境下則使用$_SERVER[?REQUEST_URI?]。更多有關(guān)SERVER的信息大家可以參考PHP手冊或使用搜索引擎查詢更加詳細的資料。
希望以上資料對您有所幫助,創(chuàng)絡(luò)感謝您的關(guān)注與分享!