rewrite的组要功能是实现RUL地址的重定向
1.rewrite语法格式及参数语法说明如下:
rewrite [flag];
关键字 正则表达式 替代内容 flag标记
flag标记说明:
last #本条规则匹配完成后,继续向下匹配新的location URI规则
break #本条规则匹配完成即终止,不再匹配后面的任何规则
redirect #返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
2.例如:
rewrite "^(.*)$" https://$host$1;
说明:
rewrite:为固定关键字,表示开始进行rewrite匹配规则
regex: ^(.*) ,这是一个正则表达式,匹配完整的域名和后面的路径地址,^表示匹配输入字符串的起始位置;. 表示匹配除“\n”之外的任何单个字符;*表示匹配前面的字符零次或多次;第一个()就是$1
replacement: http://$host/$1 其中$host:是域名本身 $1:是取自regex部分()里的内容。匹配成功后跳转到的URL。
flag:permanent 表示永久301重定向标记,即跳转到新的 http://www.czlun.com/$1 地址上
3.可以使用于http重定向到https
server
{
listen 80;
server_name www.abc.com;
rewrite "^(.*)$" https://$host$1;
...
...
4.可以使用于挂维护页面,网站所有页面重定向到维护页面
例如维护页面为 http://www.abc.com/weihu.html
server
{
listen 80;
server_name www.abc.com;
if ($request_uri !~ "^/weihu.html$") {
rewrite "^(.*)$" https://$host/weihu.html;
}
...
...