Nginx rewrite

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx rewrite相关的知识,希望对你有一定的参考价值。

nginx rewrite 实现 URL 地址重写,即域名重定向,在安装 nginx 的时候需要安装 PCRE 来支持 rewrite 功能。

语法:rewrite  regex  replacement  [flag]    //表示如果匹配到正则regex,就跳转到replacement,rewrite是固定关键字,flag是标记

正则:

\ :用于转义字符,如 \n 表示匹配换行 、\$ 表示匹配 $
^ :匹配起始位置
$ :匹配结束位置
* :匹配前面的字符零次或多次,如 ab* 可以匹配 a 或 abbb
+ :匹配前面的字符一次或多次,如 ab+ 可以匹配 ab 或 abbb
? :匹配前面的字符零次或一次,如 ab? 可以匹配 a 或 ab
() :匹配括号内的模式,并可以在后面获取对应的匹配

flag 标记:

last :重定向之后继续向下匹配新的 location URI 规则,且浏览器地址栏不变
break :重定向之后不再匹配后面的任何规则,且浏览器地址栏不变
redirect :返回 302 临时重定向,浏览器地址栏会显示跳转后的 URI 地址
permanent :返回 301 永久重定向,浏览器地址栏会显示跳转后的 URI 地址

 

配置实例:

server {                                        
        listen       80;                         
        server_name  www.aaa.com www.bbb.com;         
if {$host != ‘www.bbb.com‘}
{
rewrite ^/(.*)$ http://www.aaa.com/$1 permanent;  //表示当用户访问www.bbb.com/下的任意内容时跳转到www.aaa.com/下的任意内容 }
location / { root html/www; index index.html index.htm; }

说明:

rewrite 是固定关键字
^/(.*) 表示匹配所有
http://www.aaa.com/ 是跳转的域名
$1 是前面正则表达式括号里的内容
permanent 表示永久 301 重定向标记,即跳转到后面的 http://www.aaa.com/$1 地址上

 

 

 

 

 

      

 

以上是关于Nginx rewrite的主要内容,如果未能解决你的问题,请参考以下文章

nginx 配置rewrite

nginx rewrite uri地址重写

apache与nginx在移动终端访问是的rewrite配置

phpshe b2c商城系统配置nginx支持pathinfo和rewrite的写法

Nginx伪静态配置和常用Rewrite伪静态规则

15.Nginx动静分离Rewrite