Nginx Rewrite规则详解

Posted

tags:

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

Rewrite规则含义就是某个URL重写成特定的URL,从某种意义上说为了美观或者对搜索引擎友好,提高收录量及排名等。

Rewrite规则的最后一项参数为flag标记,支持的flag标记主要有以下几种: 

1)    last :相当于Apache里的(L)标记,表示完成rewrite;

2)    break;本条规则匹配完成后,终止匹配,不再匹配后面的规则 

3)    redirect:返回302临时重定向,浏览器地址会显示跳转后的URL地址 

4)    permanent:返回301永久重定向,浏览器地址栏会显示跳转后的URL地址 

5)       last和break用来实现URL重写,浏览器地址栏URL地址不变。 

 

a)       例如用户访问www.test.com,想直接跳转到网站下面的某个页面,www.test.com/new.index.html如何来实现呢?

我们可以使用nginx Rewrite 来实现这个需求,具体如下:

在server中加入如下语句即可:

rewrite  ^/$  http://www.test.com/index01.html  permanent;

*代表前面0或更多个字符

+代表前面1或更多个字符

?代表前面0或1个字符

^代表字符串的开始位置

$代表字符串结束的位置

。为通配符,代表任何字符

b)      例如多个域名跳转到同一个域名,nginx rewrite规则写法如下:

server

{

listen 80;

server_name www.wugk.com wugk.com;

if ($host != ‘www.wugk.com’ ) {

rewrite ^/(.*)$  http://www.wugk.com/$1  permanent;

}

更多深入的rewrite可以继续学习。

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

Nginx正则表达式location匹配Rewrite重写详解

Nginx URL重写(rewrite)配置及信息详解

Nginx笔记之Rewrite规则

Apache Rewrite规则详解

nginx之rewrite规则未加引号导致检查nginx语法报错

Nginx 之 Rewrite 规则