大天使的呼吸 » Blog Archive » htaccess设置中Redirect permanent和RedirectMatch的区别

htaccess设置中Redirect permanent和RedirectMatch的区别

文档 (搜索引擎优化) 作者 joay 日期 19-05-2009

TAG标签 : ,

简单来说吧他们最大的区别就是一个允许使用正则一个不允许使用,其它的他们完全相同都是用来设置网址跳转的。

JOAY提前说一句这是一个技术性比较强的文章,如果你读起来觉得头大的话请绕过JOAY有很多读起来轻松愉快的文字,比如这里这里

Redirect permanent 不允许使用正则

RedirectMatch 可以使用正则

举一个真实的例子,我因为网站数据结构的修改以及以前目录设置的问题,网站d1999特别容易出现重新生成的文件名和以前的文件名不相同的情况,而问题就出现在生成网页名的时候使用了日期,而因为时区的设置问题,日期有时候会不同,所以造成生成的页面也不同,当然现在已经知道问题在那里了,采用了新的日期生成方式,可以当时是不知道的,已经生成的页面如何处理呢?就可以用.htaccess对页面进行301跳转。

例子:

要把

http://www.d1999.com/BTxiazai/200805/07-7028.html
去掉最后个/后边到-的内容 变成
http://www.d1999.com/BTxiazai/200805/7028.html

怎么处理呢?最好的办法用正则对访问页面进行匹配,然后重新转到正确的网址,正则的写法如下。

^/([^/]+)/([^/]+)/(?:.*-)(.*) http://www.d1999.com/$1/$2/$3

在网上搜索如何进行网址跳转的设置都给出Redirect permanent于是写出如下代码

Redirect permanent ^/([^/]+)/([^/]+)/(?:.*-)(.*) http://www.d1999.com/$1/$2/$3

结果无效,找服务器提供商解决业务人员不精此道无法解决,于是上网搜索。

终于在一个老外的文章里找到答案要使用RedirectMatch,写成

RedirectMatch ^/([^/]+)/([^/]+)/(?:.*-)(.*) http://www.d1999.com/$1/$2/$3

的格式才行,于是马上实践果然成功。

最后说一下301定向对于搜索引擎优化是很有帮助的,特别是在大量重复文章的情况下,用这个方法可以避免网页被认为是垃圾站而降权。

之前我就是不知道这个规则d1999被降权的很严重,不过有个网站进行SEO的研究也是很值得又学到了新的东东,如果你也学到了,别忘了回复哦。

最后提供一些学习资料:

如果你喜欢这个文章,请点击这里订阅

E-mail订阅,请点击这里订阅

回复:

发布一条留言