2011-10-17 39 views
1

我想从我的网站中删除已被Google编入索引的wiki部分,因此我不想将其删除,并在删除页面时以404的负载结束。我想编写一个规则,将所有URL的请求页面重定向到另一个页面。所以基本上我想将任何包含文件夹名称/ wiki /的URL重定向到另一个页面。我有点糊涂了,如果这应该是一个重写规则:哪个是.htaccess文件中的正确/更好的规则?

RewriteRule ^wiki/* http://www.mydomain.com [R=301,L] 

或RedirectMatch:

RedirectMatch 301 /wiki/(.*) http://www.mydomain.com 

希望得到一些建议上这是正确的/最好的,如果这是应该做的正确方法它。

谢谢。

+0

您不能在'.htaccess'文件中使用'RedirectMatch',这可以多次解决问题。 –

+0

@ÁlvaroG.Vicario你错了 - 它可以在那里使用:http://httpd.apache.org/docs/current/mod/mod_alias.html#redirectmatch – LazyOne

+0

@LazyOne:你说得对。我不知道我在混淆它... –

回答

0

他们都会做同样的工作。 但是这个想法并不好,从SEO的角度来看 - 对于SEO会更好地返回410代码(410页 - 页面在这里,但不再可用)。

在任何情况下:推荐使用RedirectMatch方法 - 它使用的CPU稍少。另一方面,RewriteRule更灵活。

例如:您的网址类似于example.com/wiki/somepage?say=hello。如果你使用RedirectMatch,那么新的URL将是example.com/?say=hello - 你可以看到查询字符串被复制过。使用RewriteRule,你可以很容易地很好地删除它,所以新的URL将只是example.com/

下面是规则(略优化):

RewriteRule ^wiki/ http://%{HTTP_HOST}/? [R=301,L] 

OR

RedirectMatch 301 ^/wiki/.*$ http://www.mydomain.com/? 

?在两个规则是用于丢弃现有的查询字符串。使用RewriteRule时,重定向发生时不会在那里(mod_rewrite在这方面非常聪明),而RedirectMatch非常直接,并且会保留它(如果您正在寻找真正好的/正确的URL,这可能看起来有点奇怪)

+0

感谢您的反馈意见。很有帮助。 –