《nginx 利用 rewrite 屏蔽IE瀏覽器》要點(diǎn):
本文介紹了nginx 利用 rewrite 屏蔽IE瀏覽器,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
搞過前端的估計(jì)都碰到最頭疼的問題就是瀏覽器兼容性問題了,特別是針對(duì)IE瀏覽器.往往前端為了省事就搞一個(gè)頁面提示用戶升級(jí)瀏覽器或者顯示簡單的靜態(tài)頁面.那接下來就需要運(yùn)維來配置nginx rewrite規(guī)則了.
在這里直接貼出配置實(shí)例
server {
listen 80;
server_name xxx.xxx.com;
root ? /www ;
if ( $http_user_agent ~* “MSIE [6-9].[0-9]”) {
rewrite ? /ie.html break;
}
}
解釋一下上面的配置
$http_user_agent ?客戶端agent信息(這個(gè)是瀏覽器的標(biāo)識(shí),如果你開了訪問日志的話,可以去看一下.每種瀏覽器的標(biāo)識(shí)可能都不一樣.)
~* ?使用正則表達(dá)式,并且不區(qū)分大小寫
MSIE [6,7].[0-9] ??MSIE-IE瀏覽器的標(biāo)識(shí),這里匹配的是IE瀏覽器在版本在6到9的,例如6.1,7.0,8.2等等···
rewrite ? /ie6.html ? 只要匹配則返回指定的靜態(tài)頁面
break?停止執(zhí)行當(dāng)前這一輪的ngx_http_rewrite_module指令集
如果需要驗(yàn)證是否生效的話,這里提供一個(gè)比較方便的工具 IETester,可以模擬IE任意版本的瀏覽器來測(cè)試
nginx全局變量
$args #這個(gè)變量等于請(qǐng)求行中的參數(shù).
$content_length #請(qǐng)求頭中的Content-length字段.
$content_type #請(qǐng)求頭中的Content-Type字段.
$document_root #當(dāng)前請(qǐng)求在root指令中指定的值.
$host #請(qǐng)求主機(jī)頭字段,否則為服務(wù)器名稱.
$http_user_agent #客戶端agent信息
$http_cookie #客戶端cookie信息
$limit_rate #這個(gè)變量可以限制連接速率.
$request_body_file #客戶端請(qǐng)求主體信息的臨時(shí)文件名.
$request_method #客戶端請(qǐng)求的動(dòng)作,通常為GET或POST.
$remote_addr #客戶端的IP地址.
$remote_port #客戶端的端口.
$remote_user #已經(jīng)經(jīng)過Auth Basic Module驗(yàn)證的用戶名.
$request_filename #當(dāng)前請(qǐng)求的文件路徑,由root或alias指令與URI請(qǐng)求生成.
$query_string #與$args相同.
$scheme #HTTP方法(如http,https).
$server_protocol #請(qǐng)求使用的協(xié)議,通常是HTTP/1.0或HTTP/1.1.
$server_addr #服務(wù)器地址,在完成一次系統(tǒng)調(diào)用后可以確定這個(gè)值.
$server_name #服務(wù)器名稱.
$server_port #請(qǐng)求到達(dá)服務(wù)器的端口號(hào).
$request_uri #包含請(qǐng)求參數(shù)的原始URI,不包含主機(jī)名,如:”/foo/bar.php?arg=baz”.
$uri #不帶請(qǐng)求參數(shù)的當(dāng)前URI,$uri不包含主機(jī)名,如”/foo/bar.html”.
$document_uri #與$uri相同.
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/4584.html