收藏本站 | RSS订阅一个互联网博客
你现在的位置:网站首页 - 知识学习 - .htaccess设置伪静态后做全站301
08月23日

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

作者 : alert | 分类 : 知识学习 | 超过 人围观

.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>
« 上一篇下一篇 »
这是一个广告位!

相关文章:

已有 0 条评论了

日历
本月最热文章
最近发表
Tags列表