语法 location [=|~|~*|^~] / uri/ {…}
规则
= : 表示精确的URI 匹配(有兴趣的同学可以看一下url和uri的区别)
~: 表示区分大小写的正则 匹配
~*:表示不区分大小写的正则匹配
!~ && !~*:表示区分大小写不匹配的正则和不区分大小写的不匹配的正则
/:通用匹配,任何请求都会匹配到location匹配目标 location匹配测试只使用请求URI的部分,而不使用参数部分。(原因:参数的写法太多,无法精确匹配)
location匹配顺序
多个location配置的前提下,location的匹配顺序(未验证,嘿嘿,google上搜的)
1.首先匹配=
2.其次匹配^~
3.再其次按照配置文件的顺序进行正则匹配、
4.最后是交给/进行通用匹配
注意:
当有匹配成功时,立刻停止匹配,按照当前匹配规则处理请求演示实例
nginx 配置文件,自下到上分为三种层次分明的结构:
| http block the protocol level
| server block the server level
V location block the requested URINginx 允许用户定义 Location block ,并指定一个匹配模式(pattern)匹配特定的 URI。除了简单的字符串(比如文件系统路径),还允许使用更为复杂的匹配模式(pattern)。
Location block 的基本语法形式是:[=|~|~*|^~|@] 被称作 location modifier ,这会定义 Nginx 如何去匹配其后的 pattern ,以及该 pattern 的最基本的属性(简单字符串或正则表达式)。
关于 location modifier
1. =
这会完全匹配指定的 pattern ,且这里的 pattern 被限制成简单的字符串,也就是说这里不能使用正则表达式。
Example:匹配情况:
http://www.tuohang.net/abcd # 正好完全匹配
http://www.tuohang.net/ABCD # 如果运行 Nginx server 的系统本身对大小写不敏感,比如 Windows ,那么也匹配
http://www.tuohang.net/abcd?param1?m2 # 忽略查询串参数(query string arguments),这里就是 /abcd 后面的 ?param1?m2
http://www.tuohang.net/abcd/ # 不匹配,因为末尾存在反斜杠(trailing slash),Nginx 不认为这种情况是完全匹配
http://www.tuohang.net/abcde # 不匹配,因为不是完全匹配2. (None)
可以不写 location modifier ,Nginx 仍然能去匹配 pattern 。这种情况下,匹配那些以指定的 patern 开头的 URI,注意这里的 URI 只能是普通字符串,不能使用正则表达式。
Example:匹配情况:
http://www.tuohang.net/abcd # 正好完全匹配
http://www.tuohang.net/ABCD # 如果运行 Nginx server 的系统本身对大小写不敏感,比如 Windows ,那么也匹配
http://www.tuohang.net/abcd?param1?m2 # 忽略查询串参数(query string arguments),这里就是 /abcd 后面的 ?param1?m2
http://www.tuohang.net/abcd/ # 末尾存在反斜杠(trailing slash)也属于匹配范围内
http://www.tuohang.net/abcde # 仍然匹配,因为 URI 是以 pattern 开头的3. ~ 这个 location modifier 对大小写敏感,且 pattern 须是正则表达式
匹配情况:
http://www.tuohang.net/abcd # 完全匹配
http://www.tuohang.net/ABCD # 不匹配,~ 对大小写是敏感的
http://www.tuohang.net/abcd?param1?m2 # 忽略查询串参数(query string arguments),这里就是 /abcd 后面的 ?param1?m2
http://www.tuohang.net/abcd/ # 不匹配,因为末尾存在反斜杠(trailing slash),并不匹配正则表达式 ^/abcd$
http://www.tuohang.net/abcde # 不匹配正则表达式 ^/abcd$
注意:对于一些对大小写不敏感的系统,比如 Windows ,~ 和 ~* 都是不起作用的,这主要是操作系统的原因。4. ~*
与 ~ 类似,但这个 location modifier 不区分大小写,pattern 须是正则表达式
Example:匹配情况:
http://www.tuohang.net/abcd # 完全匹配
http://www.tuohang.net/ABCD # 匹配,这就是它不区分大小写的特性
http://www.tuohang.net/abcd?param1?m2 # 忽略查询串参数(query string arguments),这里就是 /abcd 后面的 ?param1?m2
http://www.tuohang.net/abcd/ # 不匹配,因为末尾存在反斜杠(trailing slash),并不匹配正则表达式 ^/abcd$
http://www.tuohang.net/abcde # 不匹配正则表达式 ^/abcd$5. ^~ 匹配情况类似 2. (None) 的情况,以指定匹配模式开头的 URI 被匹配,不同的是,一旦匹配成功,那么 Nginx 就停止去寻找其他的 Location 块进行匹配了(与 Location 匹配顺序有关)
6. @ 用于定义一个 Location 块,且该块不能被外部 Client 所访问,只能被 Nginx 内部配置指令所访问,比如 try_files or error_page
演示实例
产生的效果如下:
访问根目录/,匹配到location /
访问除hello.php之外的其它php程序,匹配到location ~ \.php$,并且用php5-fpm去运行
访问hello.php,匹配到location = /hello.php,访问被重定向到好联系官网玻璃钢生产厂家兰州哪里买商场美陈物品安庆定做玻璃钢雕塑广东大型玻璃钢雕塑价格香港仿铜玻璃钢雕塑玻璃钢人物雕塑近期价格玻璃钢雕塑神像盐城玻璃钢人物雕塑定做玻璃钢雕塑租赁郑州河北动物玻璃钢雕塑定做价格惠州定制玻璃钢迎宾人物雕塑价格佛像玻璃钢雕塑设计户外商场美陈厂家直销保定玻璃钢雕塑定制玻璃钢艺术雕塑生产厂家玻璃钢花盆机械化生产元旦商场美陈方案商丘玻璃钢卡通动物雕塑厂家定制商场二楼灯光美陈玻璃钢半身人物雕塑淮安商场春季美陈潮州玻璃钢雕塑凳子党建文化玻璃钢卡通雕塑生产玻璃钢花盆用什么胶水粘汕尾商场雕塑玻璃钢四川装饰商场美陈制造官渡玻璃钢仿真雕塑临朐玻璃钢雕塑价格北京个性化玻璃钢雕塑批发牛郎织女玻璃钢雕塑招远玻璃钢座椅雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万
玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化