Location
说明:可以对指定路径进入访问控制或方向代理
前缀说明:
~:区分大小写的正则匹配
~*:不区分大小写的正则匹配
=:普通的完全匹配,会阻止正则匹配
^~:普通匹配,会阻止正则匹配
@:服务器内部的重定向
使用说明:
1、~和~*是正则匹配,其它的都是普通匹配
2、当有多个location时,先进行普通匹配,然后再进行正则匹配
3、普通匹配与location的书写顺序无关,采用最大前缀;然后进行正则匹配
4、正则匹配与location的书写顺序有关,一旦匹配成功就终止匹配
5、当有前缀^~或严格匹配(location /test/123.html),不再进行正则匹配
总结说明:正则匹配让步于严格精确匹配,但是会覆盖普通匹配(最大前缀原则)
实例展示:
error_page 404 /404.html
error_page 404 https://www.baidu.com;
error_page 404 @baidu;
location @baidu {
proxy_pass http://10.36.137.9;
}
重写规则
Nginx重写:
格式:rewrite 正则 替换内容 flag;
flag:
last:通常写这个选项
break:本条匹配成功,不再进行后续匹配
redirect:302,临时重定向,浏览器会显示跳转后的地址
permanent:301,永久重定向,浏览器会显示跳转后的地址
使用:
1.通常放在server、location、if中
2.只会匹配域名之后参数之前的内容
Apache重写:需要开启重写模块(rewrite_module)
1.使用重写规则文件.htaccess,需要允许重写:AllowOverride All
RewriteEngine On
RewriteRule (.*)\.html $1.php
2.直接修改apache配置文件httd.conf,需要关闭重写:AllowOverride None
RewriteEngine On
RewriteRule (.*)\.html $1.php