nginx的301重定向及rewrite

作者:  最后修改:2013年10月21日  浏览数:457

1 Nginx重定向

  301代表永久性转移(Permanently Moved),301重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。另外为了防止网页URL劫持,推荐使用301重定向,而不是302重定向。

  使用方法如下:

  server {

  server_name www.zvingcom zving.com ;

  if ($host != 'www.zving.com' ) {

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

  }

  .....

  }

  上例的意思为将域名为zving.com 的请求301重定向到www.zving.com,其中permanent 表示301 重定向。

 

2 Nginx的Rewrite使用

  Nginx(rewrite)功能就是正则表达式,采用PCRE的perl兼容正则表达式进行匹配,编译nginx前先安装PCRE库,通过rewrite规则,可实现规范的URL,或者动态的URL地址需要伪装成静态的HTML,便于搜索引擎抓到,旧URL可以通过rewrite跳转到新 URL上。

  使用方法如下:

  if ($uri !~ ^/(.*)\.(jsp|js|gif|css|jpg|png)$) {

  rewrite ^/Web/(.*)$ /$1 permanent;

  rewrite ^/(.*)$ /Web/$1 break;

  }

  上例的意思为如果URL请求不是以jsp、js、gif、css、jpg、png结尾的,那么进行rewrite匹配,先把请求中的web去掉,再把请求指向web下的资源。

  :nginx 的rewrite语法很强大,详细使用请参考官方使用手册。