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可以继续学习。