武汉SEO
时光静好,与君语;细水流年,与君同;繁华落尽,与君老...

网站优化知识>正文

充分利用rewrite伪静态规则实现dedecms站点301变更url

2014-03-19 15:04

前些日为了变换网站的目录结构用到rewrite规则实现301转向,现在做个记录,并分享给可能有根我一样需求的站长朋友们。

 

站长有时候会重新布局网站的架构和目录层次,但是以前的URL已经使用很久,如何能不影响原来使用的url,并启用新的url呢?

那么就要使用url转向了。伪静态确实很好用。笔者前些时间调整了目录结构就必须要使原来的url不受影响,并同时启用新的url

下面以我的实际操作过程为例介绍如下。

 

网站原先的目录结构是这样的(方便打字,以A为例)news/a/1/,news/b/2/,news/c/3/,现在我要把AB目录直接放到网站根目录,

C目录保持不便。html文件全部生成静态的文件。后台重新生成静态文件到a/1/,b/2/,然后启用rewrite规则(服务器虚支持)。

 

笔者所用为windows服务器,新建httpd.ini文件,建立以下规则:

 

 

RewriteRule ^/news/a/1/([0-9]+).html$ /a/1/$1.html [R=301] 

RewriteRule ^/news/b/2/([0-9]+).html$ /b/2/$1.html [R=301

//实现news/2/目录下任意静态网址跳转到新的url

 

RewriteRule ^/news/a /a [L,RP]

RewriteRule ^/news/b /b [L,RP] 

//实现news/a转向到新的目录,注意这个必须要设,不然当用户以http://www.jiuquan.cc/news/a 这样的url访问时候,会404错误,找不到,设了之后就可以直接跳转到新url

 

RewriteRule ^/news/a/list_([0-9]+)_([0-9]+).html$ /a/list_$1_$2.html [R=301]

RewriteRule ^/news/b/list_([0-9]+)_([0-9]+).html$ /b/list_$1_$2.html [R=301]

//实现news/a/目录下文章列表的301转向

 

这是在同一主机空间下url目录301规则,同理我们也可以实现跨域名的url转向比如原bbs地址为http://www.jiuquan.cc/bbs/,现在想实现以bbs.jiuquan.cc二级域名的形式访问。

 

规则可以如下,放在原论坛空间内

 

RewriteRule ^/bbs  http://bbs.jiuquan.cc/ [R=301]

//此条规则同样是让目录链接跳转到新的url

RewriteRule ^/bbs/(.*)$  http://bbs.jiuquan.cc/$1 [R=301]

//此条规则实现bbs目录下任意url跳转到新的地址

本文链接:https://www.0937.biz/post-110.html