location 匹配规则语法规则 location [=|~|~*|^~] /uri/ { … } 模式    含义location = /uri    = 表示精确匹配,只有完全匹配上才能生效location ^~ /uri    ^~ 开头对URL路径进行前缀匹配,并且在正则之前.location ~ pattern    开头表示区分大小写的正则匹配location ~* pattern    开头表示不区分大小写的正则匹配location /uri    不带任何修饰符,也表示前缀匹配…
mark:2016年05月25日13:20:54 (存手打,拒绝转载) 一.location分为 普通location 和 正则location 只有带有 "~" 或者"~*"前缀的属于 正则location “=”,“^~ ”和“@ ” 和无任何前缀的(例如只有  "location /name") 属于普通location 二.location匹配顺序 当一个请求发送到nginx的时候,匹配到了server模块后,就会进到我们的locatio…
1.三个参数 a)$http_referer:记录此次请求是从哪个链接访问过来的: 是直接访问,还是从其他网站跳转过来的. 例如:访问:http://www.etiantian.com/,其页面首页是index.html <h1>www-10.0.0.8:80</h1><a href="www.qingfeng.com" target="_blank"><img src="123.jpg""&g…
1.alias与root的用法区别 最基本的区别:alias指定的目录是准确的,root是指定目录的上级目录,并且该上级目录要含有location指定名称的同名目录. location /abc/ { alias /home/html/abc/; } 这个配置实际上指向的是/home/html/abc/目录. location /abc/ { root /home/html/abc/; } 这个指向的是/home/html/abc/abc/这个目录 2.location匹配规则 2.locati…
有些童鞋的误区 1. location 的匹配顺序是“先匹配正则,再匹配普通”. 矫正: location 的匹配顺序其实是“先匹配普通,再匹配正则”.我这么说,大家一定会反驳我,因为按“先匹配普通,再匹配正则”解释不了大家平时习惯的按“先匹配正则,再 匹配普通”的实践经验.这里我只能暂时解释下,造成这种误解的原因是:正则匹配会覆盖普通匹配(实际的规则,比这复杂,后面会详细解释). 2. location 的执行逻辑跟 location 的编辑顺序无关. 矫正:这句话不全对,“普通 locati…
有些童鞋的误区 1. location 的匹配顺序是“先匹配正则,再匹配普通”. 矫正: location 的匹配顺序其实是“先匹配普通,再匹配正则”.我这么说,大家一定会反驳我,因为按“先匹配普通,再匹配正则”解释不了大家平时习惯的按“先匹配正则,再匹配普通”的实践经验.这里我只能暂时解释下,造成这种误解的原因是:正则匹配会覆盖普通匹配(实际的规则,比这复杂,后面会详细解释). 2. location 的执行逻辑跟 location 的编辑顺序无关. 矫正:这句话不全对,“普通 locatio…
目录 规则语法 location 分类 匹配顺序: 扩展 location / {}和 location =/ {}的区别 测试 规则语法 语法 匹配规则 空 普通匹配(遵循最大前缀匹配规则, 优先度比正则低) = 精确(严格)匹配, 优先度最高后续不再匹配正则 ^~ 非正则匹配(依然遵循最大前缀匹配规则)后续不再匹配正则 ~ 表示区分大小写的正则匹配 ~* 表示不区分大小写的正则匹配 / 通用匹配,任何请求都会匹配到(本质上等同于语法 空) !~ 和 !~* 分别为区分大小写不匹配及不区分大小…
目录 规则语法 location 分类 匹配顺序: 扩展 location / {}和 location =/ {}的区别 如何快速测试 规则语法 语法 匹配规则 空 普通匹配(遵循最大前缀匹配规则, 优先度比正则低) = 精确(严格)匹配 ^~ 非正则匹配(依然遵循最大前缀匹配规则) ~ 表示区分大小写的正则匹配 ~* 表示不区分大小写的正则匹配 !~ 和 !~* 别为区分大小写不匹配及不区分大小写不匹配 的正则 / 通用匹配,任何请求都会匹配到 location 分类 只有两类:正则loca…
首先需要明确几容易混淆的规则: servlet容器中的匹配规则既不是简单的通配,也不是正则表达式,而是特定的规则.所以不要用通配符或者正则表达式的匹配规则来看待servlet的url-pattern. Servlet 2.5开始,一个servlet可以使用多个url-pattern规则,<servlet-mapping>标签声明了与该servlet相应的匹配规则,每个<url-pattern>标签代表1个匹配规则: 当servlet容器接收到浏览器发起的一个url请求后,容器会用u…
语法规则: location [=|~|~*|^~] /uri/ { … } =:开头表示精确匹配 ^~:开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因此请求为/static/20%/test,可以被规则^~ /static/ /test匹配到(注意是空格). ~:开头表示区分大小写的正则匹配 ~*:开头表示不区分大小写的正则匹配 !~和!~*:分别为区分大小写不匹配及不区分大小写不匹配的正则 /:通用匹配,任何请求都会匹配到. 多个locatio…