301跳转规则的复杂写法及详细解读
发布时间:2018-10-22 23:29:19作者:魏义齐阅读:()评论:
个人站长或网站运营人员应该都知道,网站动态转伪静态或纯静态再或者部署ssl都要用到301跳转,但是你们真的了解301跳转吗?
如果是仅仅换了域名,大家可以参考我的文章“干货分享:网站更换域名的五点经验总结”中第四点在iis上设置(本文所述皆以windows2008服务器为例)。
最近我的博客全站静态化,静态化之前移动了部分文章所属栏目,所以收录的动态链接跟现在要做跳转的静态链接之间的关系真的是乱的一笔,百度怎么写跳转规则花了两小时,写跳转规则花了三小时(近280对乱七八糟的url对)。
本文以我的一个phpcms程序模板站的文章页和栏目页动静链接为例,来讲复杂url链接对的301跳转规则写法,先看一组文章页的url对:
它在web.config中写法如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration>
- <system.webServer>
- <rewrite>
- <rules>
- <rule name="catid11-show" stopProcessing="true">
- <match url="^index.php$" ignoreCase="false" />
- <conditions logicalGrouping="MatchAll">
- <add input="{QUERY_STRING}" pattern="^m=content&c=index&a=show&catid=11&id=2$" />
- </conditions>
- <action type="Redirect" url="/html/cjwt/2.html" appendQueryString="false" redirectType="Permanent" />
- </rule>
- </rules>
- </rewrite>
- </system.webServer>
- </configuration>
如果是同一栏目下的两个文章页,比如:
只需将id=2$改为id=(2|3)$,url="/html/cjwt/2.html"改为url="/html/cjwt/{c:1}.html"即可。
大部分人应该都有这样几个疑问:
1.name="catid11-show"是什么意思?
它只是我用来区分url规则的命名而已,跟里面的跳转规则没有任何关系,需要注意的是这个命名不能相同,否则会出现500错误
2.{QUERY_STRING}
详情大家可以看文章:Rewrite %{QUERY_STRING}用法(http://www.softwhy.com/article-8510-1.html)
3.“&”后面为什么要加“amp;”
其实不是加上,“amp;”就是“&”,只是在html中“&”用“amp;”来表示,来看百度知道里面的一条回答:
突然想到phpcms的生成sitemaps功能的一个bug,就是动态网站生成sitemaps全部把链接里的&替换成&,然后你在浏览器输入转化后的动态链接全部跳转到首页。
4.{c:1}是什么意思?
我也不知道什么意思,因为百度没找到,可能就是web.config文件的一种特殊写法,大家只需要知道如果有多个同一栏目的文章页跳转把文章序号改成{c:1}就行,妥妥的,没问题。
每当添加一条规则,iis里站点的url重写就会多一条入站规则
如果你还想深入了解可以打开iis管理器→点计算机名称→右边点查看网站→站点→url重写→规则上双击进去,看看里面都有什么东东。
了解了以上这些,其实就不复杂了,唯一有点复杂的就是找链接的规律,如果url又杂有多,那不仅需要细心,还需要耐心,因为url对需要在百度搜索资源平台提交作为改版规则,跳转失败可能会一直是部分改版中,这对权重转移和整站的SEO都不是件好事,一个站点两个链接是一样的内容会被百度惩罚的。
上一篇:服务器安装iis+nginx导致网站无法访问的可能性原因下一篇:nginx日志如何获取访客真实ip
原创不易,您的赞助就是博主更新的动力!
赞助请备注,8.88元及以上可在赞助光荣榜留下外链信息。
完全自托管的评论系统
-
东方星雨
-
deanhan
-
1264822519
-
aini3311
-
a1051020101
-
weiyiqi
- Windows Modules Installer Worker导致CPU和内存飙升的彻底性解决方法(27248)
- webm视频不能播放的原因(3272)
- win2008r2系统windows update安装更新始终失败的解决方法(1657)
- 301跳转规则的复杂写法及详细解读(1285)
- windows server 2016相比2012做了哪些改进、又有什么新问题?(1191)
- 登录phpmyadmin提示mysqli_real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES)如何解决?(1158)
- Windows Server 2012使用技巧汇总(1083)
- 如何给服务器设置自动重启(974)
- 护卫神中服务器出现HTTP错误401.3-Unauthorized如何解决(958)
- nginx日志如何获取访客真实ip(916)
- 服务器中禁用Windows Update的四个理由(2022-11-20)
- 购买Windows系统服务器的一些小知识(2022-09-25)
- 西部数码SSL证书快到期后申请部署的详细步骤和注意事项(2022-09-08)
- web.config中设置全站301跳转后使某个文件或目录不跳转的方法(2021-10-17)
- phpmyadmin导出数据库export.php第864行break 2报错如何解决(2021-09-23)