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