.htaccess设置伪静态后做全站301

.htaccess文件里可以设置伪静态,但是你网站进行伪静态后,这样网站就会出现两个url,动态和静态,为了集中权重和用户体验,最好两个url整合在一起,这样就需要进行全站301了。

301cdx.jpg


问题描述:网站程序asp.net,动态url太长,超过百度搜索框最大长度限制,用户体验差,需要进行url优化。

解决方法:对网站url进行伪静态并进行全站301。

实现过程:

1、空间或者服务器必须支持伪静态在.htaccess文件里实现,一般Linux服务器或者配置IIS6+ISAPI Rewrite 3.X的windows服务器都可以。

2、找到网站的url规则然后在.htaccess文件里设置301伪静态,测试后伪静态生效。

3、然后进行全站301永久重定向的书写,发现写好301规则后,访问伪静态的url出现404,通过各种方式以及网上搜集资料都没有找到解决方法,后来我单独尝试做301发现问题解决,同时伪静态也生效(不需要单独做伪静态)。下面来分享一下实现的代码:

网站域名:www.changgentang.com

原始url规则之一:/mediareport.aspx?c_kind=22&c_kind2=23&id=491

转换后url为:/news-22-23-491.html

这里列举几条实现全站301永久重定向的规则,其他都是通用:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

//一个变量设置全站301
RewriteRule ^sitemap-([0-9]+).html$ /sitemap.aspx?c_kind=$1&r=1 [L]
RewriteCond %{QUERY_STRING} ^c_kind=([0-9]+)$ [NC]
RewriteRule ^sitemap.aspx?$ /sitemap-%1.html? [L,R=301]

//二个变量设置全站301
RewriteRule ^news-([0-9]+)-([0-9]+).html$ /mediareport.aspx?c_kind=$1&c_kind2=$2&r=1 [L]
RewriteCond %{QUERY_STRING} ^c_kind=([0-9]+)&c_kind2=([0-9]+)$ [NC]
RewriteRule ^mediareport.aspx?$ /news-%1-%2.html? [L,R=301]

//三个变量设置全站301
RewriteRule ^zixun-([0-9]+)-([0-9]+)-([0-9]+).html$ /message_detail.aspx?c_kind=$1&c_kind2=$2&id=$3&r=1 [L]
RewriteCond %{QUERY_STRING} ^c_kind=([0-9]+)&c_kind2=([0-9]+)&id=([0-9]+)$ [NC]
RewriteRule ^message_detail.aspx?$ /zixun-%1-%2-%3.html? [L,R=301]

</IfModule>

相关文章

评论:

1 条评论

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用*标注