国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Nginx區(qū)分PC或手機(jī)訪問(wèn)不同網(wǎng)站

近幾年來(lái),隨著手機(jī)和pad的普及,越來(lái)越多的用戶選擇使用移動(dòng)客戶端訪問(wèn)網(wǎng)站,而為了獲取更好的用戶體驗(yàn),就需要針對(duì)不同的設(shè)備顯示出最合適的匹配,這樣就是近年來(lái)流行的“響應(yīng)式web設(shè)計(jì)”。

響應(yīng)式web設(shè)計(jì)是一種純前端技術(shù)js、css等實(shí)現(xiàn)的針對(duì)不同設(shè)備訪問(wèn)同一網(wǎng)址看到不同的布局,是頁(yè)面內(nèi)容更適合當(dāng)前設(shè)備閱讀。但這個(gè)不是本文的重點(diǎn),重點(diǎn)還是放在nginx如何實(shí)現(xiàn)上來(lái)。

本文要講的的是如何使用nginx區(qū)分pc和手機(jī)訪問(wèn)不同的網(wǎng)站,是物理上完全隔離的兩套網(wǎng)站(一套移動(dòng)端、一套pc端),這樣帶來(lái)的好處pc端和移動(dòng)端的內(nèi)容可以不一樣,移動(dòng)版網(wǎng)站不需要包含特別多的內(nèi)容,只要包含必要的文字和較小的圖片,這樣會(huì)更節(jié)省流量。有好處當(dāng)然也就會(huì)增加困難,難題就是你需要維護(hù)兩套環(huán)境,并且需要自動(dòng)識(shí)別出來(lái)用戶的物理設(shè)備并跳轉(zhuǎn)到相應(yīng)的網(wǎng)站,當(dāng)判斷錯(cuò)誤時(shí)用戶可以自己手動(dòng)切換回正確的網(wǎng)站。

下面以264查詢網(wǎng)為實(shí)例來(lái)說(shuō)明如何實(shí)現(xiàn)上面的需求。
明確的的需求:
1.制作兩個(gè)站點(diǎn)PC端網(wǎng)站www.264.cn,和移動(dòng)端網(wǎng)站m.264.cn
2.使用pc或移動(dòng)設(shè)備訪問(wèn)任何一個(gè)域名都會(huì)跳到相應(yīng)的站點(diǎn)。
3.用戶可以選擇訪問(wèn)移動(dòng)版還是PC版網(wǎng)站,移動(dòng)版網(wǎng)站始終有切換到PC版的鏈接,PC版當(dāng)網(wǎng)站通過(guò)手機(jī)訪問(wèn)時(shí)會(huì)提供移動(dòng)版網(wǎng)站的鏈接。
4.當(dāng)用戶選著訪問(wèn)其中一種類(lèi)型的網(wǎng)站后,保存設(shè)置結(jié)果生效時(shí)間為24小時(shí),當(dāng)然長(zhǎng)短可以自己設(shè)置。

簡(jiǎn)單的服務(wù)器端實(shí)現(xiàn)方法
有兩套網(wǎng)站代碼,一套PC版放在/usr/local/website/web,一套移動(dòng)版放在/usr/local/website/mobile。只需要修改nginx的配置文件件,nginx通過(guò)UA來(lái)判斷是否來(lái)自移動(dòng)端訪問(wèn),實(shí)現(xiàn)不同的客戶端訪問(wèn)不同內(nèi)容。
這種方法的缺點(diǎn)是移動(dòng)端和PC端用同一個(gè)域名,存在黑帽的嫌疑,而且UA并不是總是判斷的準(zhǔn)確,如果判斷錯(cuò)誤的情況下,用戶不能手動(dòng)修改訪問(wèn)的網(wǎng)站類(lèi)型。
關(guān)鍵的Nginx配置如下:

location / {	#默認(rèn)PC端訪問(wèn)內(nèi)容    root /usr/local/website/web;	#如果是手機(jī)移動(dòng)端訪問(wèn)內(nèi)容    if ( $http_user_agent ~ "(MIDP)|(WAP)|(UP.Browser)|(Smartphone)|(Obigo)|(Mobile)|(AU.Browser)|(wxd.Mms)|(WxdB.Browser)|(CLDC)|(UP.Link)|(KM.Browser)|(UCWEB)|(SEMC-Browser)|(Mini)|(Symbian)|(Palm)|(Nokia)|(Panasonic)|(MOT-)|(SonyEricsson)|(NEC-)|(Alcatel)|(Ericsson)|(BENQ)|(BenQ)|(Amoisonic)|(Amoi-)|(Capitel)|(PHILIPS)|(SAMSUNG)|(Lenovo)|(Mitsu)|(Motorola)|(SHARP)|(WAPPER)|(LG-)|(LG/)|(EG900)|(CECT)|(Compal)|(kejian)|(Bird)|(BIRD)|(G900/V1.0)|(Arima)|(CTL)|(TDG)|(Daxian)|(DAXIAN)|(DBTEL)|(Eastcom)|(EASTCOM)|(PANTECH)|(Dopod)|(Haier)|(HAIER)|(KONKA)|(KEJIAN)|(LENOVO)|(Soutec)|(SOUTEC)|(SAGEM)|(SEC-)|(SED-)|(EMOL-)|(INNO55)|(ZTE)|(iPhone)|(Android)|(Windows CE)|(Wget)|(Java)|(curl)|(Opera)" )	{		root /usr/local/website/mobile;	}	index index.html index.htm;}

純客戶端js實(shí)現(xiàn)方式
下面這段代碼放到首頁(yè)<head>和</head>之間即可

<script type="text/javascript">// <![CDATA[if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){	if(window.location.href.indexOf("?mobile")<0){		try{			if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){                                //觸屏手機(jī)版地址				window.location.;			}else if(/iPad/i.test(navigator.userAgent)){                                //pad版地址			}else{                                //普通手機(jī)版地址				window.location.			}		}catch(e){}	}}// ]]></script>

推薦的nginx區(qū)別手機(jī)和PC訪問(wèn)方法
利用前端js和后端nginx配合,js通過(guò)設(shè)置cookie來(lái)設(shè)定當(dāng)前訪問(wèn)哪頁(yè)面。

增加設(shè)置cookie的js代碼,這段代碼需要在移動(dòng)網(wǎng)站和PC網(wǎng)站的所有頁(yè)面都要放置。

function createCookie(name, value, days, domain, path) {  var expires = '';  if (days) {    var d = new Date();    d.setTime(d.getTime() + (days*24*60*60*1000));    expires = '; expires=' + d.toGMTString();  }  domain = domain ? '; domain=' + domain : '';  path = '; path=' + (path ? path : '/');  document.cookie = name + '=' + value + expires + path + domain;}function readCookie(name) {  var n = name + '=';  var cookies = document.cookie.split(';');  for (var i = 0; i < cookies.length; i++) {    var c = cookies[i].replace(/^s+/, '');    if (c.indexOf(n) == 0) {      return c.substring(n.length);    }  }  return null;}function eraseCookie(name, domain, path) {  setCookie(name, '', -1, domain, path);}

nginx增加如下配置,根據(jù)UA和cookie判斷當(dāng)前是移動(dòng)端還是PC端訪問(wèn)

if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|BlackBerry)') {  set $mobile_request '1';}if ($http_cookie ~ 'mobile_request=full') {  set $mobile_request '';}if ($mobile_request = '1') {  rewrite ^.+ http://m.264.cn$uri;}

移動(dòng)版頁(yè)面添加PC版鏈接
默認(rèn)用戶進(jìn)來(lái)時(shí)會(huì)先判斷UA,如果是手機(jī)端訪問(wèn)就會(huì)進(jìn)入手機(jī)版,但也會(huì)存在誤判進(jìn)入手機(jī)版或者需要更多信息進(jìn)入PC版,那么就需要在移動(dòng)版的頁(yè)面放入代碼,讓用戶可以從移動(dòng)版切換到web版并且下次訪問(wèn)會(huì)保留設(shè)置。

<a onclick="setCookie('iphone_mode', 'full', 1, '264.cn')" ) {      rewrite ^.+ http://www.264.cn$uri;    }    # serve cached pages ...    if (!-f $request_filename) {      proxy_pass http://m_app_server;      break;    }  }}
除非注明,本站文章均為: Nginx中文站原創(chuàng),轉(zhuǎn)載請(qǐng)注明本文地址:http://www.nginx.cn/784.html

--完--

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
HTTP模塊(一)
openresty使用http模塊
nginx反向代理-負(fù)載均衡-URL重寫(xiě)
【Nginx22】Nginx學(xué)習(xí):FastCGI模塊(四)錯(cuò)誤處理及其它
nginx中upstream的設(shè)計(jì)和實(shí)現(xiàn)(二)
nginx loction語(yǔ)法詳解
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服