充分利用rewrite伪静态规则实现dedecms站点变更url
充分利用rewrite 伪静态规则实现dedecms 站点301变更url前些日为了变换网站的目录结构用到rewrite 规则实现301转向,现在做个记录,并分享给可能有根我一样需求的站长朋友们。站长
充分利用rewrite 伪静态规则实现dedecms 站点301变更url
前些日为了变换网站的目录结构用到rewrite 规则实现301转向,现在做个记录,并分享给可能有根我一样需求的站长朋友们。
站长有时候会重新布局网站的架构和目录层次,但是以前的URL 已经使用很久,如何能不影响原来使用的url ,并启用新的url 呢?
那么就要使用url 转向了。伪静态确实很好用。笔者前些时间调整了目录结构就必须要使原来的url 不受影响,并同时启用新的url 。
下面以我的实际操作过程为例介绍如下。
网站原先的目录结构是这样的(方便打字,以A 为例)news/a/1/,news/b/2/,news/c/3/,现在我要把A 、B 目录直接放到网站根目录, C 目录保持不便。html 文件全部生成静态的文件。后台重新生成静态文件到a/1/,b/2/,然后启用rewrite 规则(服务器虚支持)。
笔者所用为windows 服务器,新建httpd.ini 文件,建立以下规则:
RewriteRule ^/news/a/1/([0-9] ).html$ /a/1/$1.html [L,RP]
RewriteRule ^/news/b/2/([0-9] ).html$ /b/2/$1.html [L,RP]
//实现news/2/目录下任意静态网址跳转到新的url
RewriteRule ^/news/a /a [L,RP]
RewriteRule ^/news/b /b [L,RP]
//实现news/a转向到新的目录,注意这个必须要设,不然当用户以http://www.25918.cn/news/a 这样的url 访问时候,会404错误,找不到,设了之后就可以直接跳转到新url
RewriteRule ^/news/a/list_([0-9] )_([0-9] ).html$ /a/list_$1_$2.html [L,RP] RewriteRule ^/news/b/list_([0-9] )_([0-9] ).html$ /b/list_$1_$2.html [L,RP] //实现news/a/目录下文章列表的301转向
这是在同一主机空间下url 目录301规则,同理我们也可以实现跨域名的url 转向比如原bbs 地址为http://www.25918.cn/bbs/,现在想实现以bbs.25918.cn 二级域名的形式访问。
规则可以如下,放在原论坛空间内
RewriteRule ^/bbs http://bbs.25918.cn/ [L,RP]
//此条规则同样是让目录链接跳转到新的url
RewriteRule ^/bbs/(.*)$ http://bbs.25918.cn/$1 [L,RP]
//此条规则实现bbs 目录下任意url 跳转到新的地址