Nginx域名重定向

nginx域名重定向包括,Location匹配与Rewrite重写

一、Location

下次有空再补充

二、rewrite

rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。
rewrite只能放在server{},location{},if{}中,并且默认只能对域名后边的除去传递的参数外的字符串起作用。

1、执行顺序

(1) 执行 server 块里面的 rewrite 指令。
(2) 执行 location 匹配。
(3) 执行选定的 location 中的 rewrite 指令。

2、语法
rewrite     [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;
        }

 

你可能感兴趣的:(nginx,运维)