nginx location 配置 正则表达式实例详解
1.location介绍
•location是在server块中配置,用来通过匹配接收的uri来实现分类处理不同的请求,如反向代理,取静态文件等
•location在server块中可以有多个,且是有顺序的,会被第一个匹配的location处理
•localtion匹配功能只做匹配分发用,并不会改变uri的内容或其他作用,我一开始理解的时候就混淆了一些概念,建议多做测试看实际效果
2.localtion匹配规则
•location[=|~|~*|^~]uri{…}
•location@name{…}
注1:规则不能混合使用
注2:以下例子说明都以该server为基础
server{ listen8861; server_nameabc.com; }
2.1“=”精确匹配
•内容要同表达式完全一致才匹配成功
例:
location=/{ ..... } #只匹配http://abc.com #http://abc.com[匹配成功] #http://abc.com/index[匹配失败]
2.2“~”,大小写敏感
例·:
location~/Example/{ ..... } #http://abc.com/Example/[匹配成功] #http://abc.com/example/[匹配失败]
2.3.“~*”,大小写忽略
例:
location~*/Example/{ ..... } #则会忽略uri部分的大小写 #http://abc.com/test/Example/[匹配成功] #http://abc.com/example/[匹配成功]
2.4.“^~”,只匹配以uri开头
例:
location^~/index/{ ..... } #以/img/开头的请求,都会匹配上 #http://abc.com/index/index.page[匹配成功] #http://abc.com/error/error.page[匹配失败]
2.5.“@”,nginx内部跳转
例:
location/index/{ error_page404@index_error; } location@index_error{ ..... } #以/index/开头的请求,如果链接的状态为404。则会匹配到@index_error这条规则上。
2.6不加任何规则
•不加任何规则则时,默认是大小写敏感,前缀匹配,相当于加了“~”与“^~”
•只有/表示匹配所有uri
location/index/{ ...... } #http://abc.com/index[匹配成功] #http://abc.com/index/index.page[匹配成功] #http://abc.com/test/index[匹配失败] #http://abc.com/Index[匹配失败] #匹配到所有uri location/{ ...... }
总结
以上所述是小编给大家介绍的nginxlocation配置正则表达式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!