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

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

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

问题描述:网站程序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>
一锅烩

世界,您好!

2019-1-4 9:21:15

一锅烩

5G文章收录

2019-1-9 19:58:57

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索