一、location规则介绍
(1)nginx通过拦截到的请求去对配置好的location块进行请求代理。
(2)语法规则:
location [=|~|~*|^~] /uri/{……}
= :开头表示精准匹配
~: 开头表示区分大小写的正则匹配
~*:开头表示不区分大小写的正则匹配
^~: 开头表示uri以某个常规字符串开头。例:请求为/static/20%/aa 可以被^~ /static/ /aa匹配到
!~:开头表示区分大小写不匹配
!~*:开头表示不区分大小写不匹配。
/:通用匹配
优先规则:= ^~ 按文件中顺序的正则匹配 /
二、地址重写原理与实践
(1)介绍
rewirte 即URL 重写,就是把传入web的请求重定向到其他URL的过程。主要实现URL地址的重定向。 需要pcre软件支持。
1、URL rewirte 最常见的应用是伪静态化,是将动态页面显示为静态页面的技术。
2、从安全角度上讲,静态的URL地址可以带来更高的安全性。
3、实现网站地址跳转。
(2)rewirte语法
rewrite <regex> <replacment> [flag];
关键字 正则 替代内容 flag标记
flag标记说明:
last #本条规则匹配完成后,继续向下匹配新的location URI规则
break #本条规则匹配完成即终止,不再匹配后面的任何规则
redirect #返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent #返回301永久重定向,浏览器地址栏会显示跳转后的URL
redirect和permanent的区别:
permanent更加友好,301会直接跳转到新地址;302会比较二个界面更加直观,然后显示比较好的一个
(1)匹配过程中可以引用的一些全局变量
全局变量 | 解释 |
$request_filename | 当前请求文件的路径名(带root指定的路径) |
$request_uri | 当前请求文件的路径名(不带root指定的路径) |
$request_method | 请求的方法(“get”、“post”) |
$request_addr | 客户端地址 |
$request_port | 客户端端口号 |
$server_addr | 服务器地址 |
$server_name | 请求到达的服务器名 |