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

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

f10a1a266d27cb4e5e312f6630a2e743.png

问题描述:网站程序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永久重定向的规则,其他都是通用:

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]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值