nginx下主目录内容移到子目录的301重定向方法

在上一篇《nginx实现域名301重定向规则方法》文章里,我提到了nginx的重定向写法(其实内容写的就是域名031重定向)。今天对那篇文章进行补充。主要说一下主目录内容移动到子目录后的页面重定向方法。这写篇文章的目的是我在百度找不到······
其实道理很简单(会者不难,难者不会),还是使用rewrite写法。举个例子:
内容在主目录时的url是

www.ymywz.com/caipu-1-1-1.html

在子目录的url是

  1. www.ymywz.com/caipu/1-1-1.html  

那么,在nginx下的301重定向写法就是: 

rewrite ^/caipu\-(.+?).html /caipu/$1.html permanent;

规则与我们的伪静态写法是不一样的,伪静态的写法是:

  1. rewrite ^/caipu/([0-9]+)-([0-9]+)-([0-9]+).html /caipu/index.php?catid=$1&id=$2&page=$3 last;  

按照我这个小白的理解:

  1. 伪静态的写法是“需要的域名+原本的域名+last”;    

  2. 而301重定向呢,则是“原本的域名+需要的域名+permanent”  

代码注释

  1. rewrite /*重定向开始*/

  2. permanent /*返回301永久重定向 地址栏会显示跳转后的地址*/

  3. redirect /*返回302临时重定向 地址栏会显示跳转后的地址*/

  4. /*在前面的域名里代表结束符,而$1则代表第一个参数*/

其实rewrite还有很多用法,不单单用来重定向以及伪静态。接下来我会发另外一篇文章进行解释,分享给大家,也算是加强自我学习。

标签: none

添加新评论