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