brower 模塊主要作用是根據(jù)http請(qǐng)求頭中"User-Agent"的值,以瀏覽器的特征字符來判斷新舊瀏覽器,并生成對(duì)應(yīng)的變量,以供后續(xù)的請(qǐng)求處理邏輯來使用。
1. 簡介
ngx_http_browser_module 模塊,通過判斷"User-Agent"請(qǐng)求頭的值,來生成變量,以供后續(xù)的請(qǐng)求邏輯處理。
2.內(nèi)置變量列表
$modern_browser
如果瀏覽器被標(biāo)識(shí)為現(xiàn)代瀏覽器,則等于 modern_browser_value 指令設(shè)置的值;
$ancient_browser
如果瀏覽器被識(shí)別為古老瀏覽器,則等于 Ancient_browser_value 指令設(shè)置的值;
$msie
如果瀏覽器被識(shí)別為MSIE,不區(qū)分任何版本,則等于1;
3.配置示例
現(xiàn)代瀏覽器的識(shí)別邏輯配置:
modern_browser_value "modern.";
# modern_brower指定何種瀏覽器以及對(duì)應(yīng)的版本被視為現(xiàn)代瀏覽器, 配置格式后續(xù)介紹
modern_browser msie 5.5;
modern_browser gecko 1.0.0;
modern_browser opera 9.0;
modern_browser safari 413;
modern_browser konqueror 3.0;
當(dāng)瀏覽器被判斷為現(xiàn)代瀏覽器時(shí),modern_browser變量等于"modern.",即modern_browser_value配置的變量。
index index.${modern_browser}html index.html;
古老瀏覽器的兼容判斷:
modern_browser msie 5.0;
modern_browser gecko 0.9.1;
modern_browser opera 8.0;
modern_browser safari 413;
modern_browser konqueror 3.0;
modern_browser unlisted;
# ancient_browser配置何種子串被識(shí)別為古老瀏覽器
ancient_browser Links Lynx netscape4;
# 當(dāng)瀏覽器被識(shí)別為古老瀏覽器,ancient_browser為1; 在此處可以做兼容處理或者給用戶直接以提示,提示更新或者更換現(xiàn)代瀏覽器;
if ($ancient_browser) {
rewrite ^ /ancient.html;
}
4.配置格式
Syntax: ancient_browser string ...;
Default: —
Context: http, server, location
配置"User-Agent"頭有何種子串時(shí),被判斷為古老瀏覽器,特殊子串"netscape4"等價(jià)于正則表達(dá)式: ^Mozilla/[1-4]
Syntax: ancient_browser_value string;
Default:
ancient_browser_value 1;
Context: http, server, location
當(dāng)識(shí)別為古老瀏覽器時(shí),$ancient_browser變量的值,即默認(rèn)為1;
Syntax: modern_browser browser version;
modern_browser unlisted;
Default: —
Context: http, server, location
配置何種瀏覽器何種版本時(shí),判定為現(xiàn)代瀏覽器。browser取值:msie, gecko, opera, safari, konqueror. 版本定義格式為X, X.X, X.X.X, 或者X.X.X.X. ,每個(gè)格式的最大值分別為: 4000, 4000.99, 4000.99.99, and 4000.99.99.99。
unlisted為特殊字符串,配置當(dāng)瀏覽器都未出現(xiàn)在來modern_browser和ancient_browser匹配范圍里,則被視為現(xiàn)代瀏覽器。否則被視為古老瀏覽器。如果請(qǐng)求頭中未提供"User-Agent"頭,則被視為未出現(xiàn)匹配列表中。
Syntax: modern_browser_value string;
Default:
modern_browser_value 1;
Context: http, server, location
當(dāng)識(shí)別為現(xiàn)代瀏覽器時(shí),$modern_browser變量的值,默認(rèn)為1;
4.總結(jié)
ngx_http_browser_module 提供了瀏覽器兼容的判斷機(jī)制,使我們?cè)谧鲂屡f瀏覽器兼容處理時(shí)更為優(yōu)雅與高效,同學(xué)們可以在實(shí)際需求中多加運(yùn)用,將業(yè)務(wù)邏輯中的瀏覽器版本抽離出來,使得業(yè)務(wù)更像業(yè)務(wù),無需考慮其他。
到此這篇關(guān)于Nginx之Http模塊系列之a(chǎn)utoindex模塊的具體使用的文章就介紹到這了,更多相關(guān)Nginx autoindex模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!