nginx域名重定向包括,Location匹配与Rewrite重写
一、Location
下次有空再补充
二、rewrite
rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。
rewrite只能放在server{},location{},if{}中,并且默认只能对域名后边的除去传递的参数外的字符串起作用。
1、执行顺序
(1) 执行 server 块里面的 rewrite 指令。
(2) 执行 location 匹配。
(3) 执行选定的 location 中的 rewrite 指令。
2、语法
rewrite <regex> <replacement> [flag]
regex :表示正则匹配规则。
replacement:表示跳转后的内容。
flag:表示 rewrite 支持的 flag 标记。
3.flag标记说明
last :本条规则匹配完成后,继续向下匹配新的location URI规则,一般用在 server 和 if 中。
break :本条规则匹配完成即终止,不再匹配后面的任何规则,一般使用在 location 中。
redirect :返回302临时重定向,浏览器地址会显示跳转后的URL地址。
permanent :返回301永久重定向,浏览器地址栏会显示跳转后的URL地址。
4.rewrite 示例
假设一个网站,我给这个网站申请了两个不同的域名,要求他们都可以访问,并且每个域名不加路径访问时,自动为各个域名加上访问路径。nginx的配置文件便可以这样设置。
location / {
if ($host = 'www.aaa.com'){
rewrite ^/(.*)$ http://www.aaa.com/xxx permanent;
}
if ($host = 'www.bbb.com'){
rewrite ^/(.*)$ http://www.bbb.com/xxx permanent;
}
root html;
index index.html index.htm;
}