返回包含特定字符串的网址的410状态代码

时间:2014-03-11 12:27:37

标签: regex apache .htaccess mod-rewrite redirect

我最近在stackoverflow的帮助下创建了一堆重写规则到301重定向包含某些单词或字符串的URL。规则就像这样:

RewriteCond %{QUERY_STRING} (^|&)name=Your_Account(&|$) [NC]
RewriteRule ^ /suchen/? [L,R=301]

在这种情况下,所有包含" name = Your_Account"被重定向到搜索页面。但是,最佳做法是返回404或甚至410状态。 410会更好,因为由于缺少无索引元信息,许多这些网址是由Google动态创建和索引的。我可以这样做:

RewriteCond %{QUERY_STRING} (^|&)name=Your_Account(&|$) [NC]
RewriteRule ^ /suchen/? [L,R=410] 

但这会返回410错误(消失)和重定向,这可能无效。它有效,浏览器不会重定向网址,但我更喜欢一个干净的解决方案。

1 个答案:

答案 0 :(得分:0)

对于SEO目的301也可以正常工作。

而不是R=410您使用G标志:

RewriteCond %{QUERY_STRING} (^|&)name=Your_Account(&|$) [NC]
RewriteRule ^ /suchen/? [G]

另外G或410不会执行完整的URL重定向,您需要在新的浏览器中进行测试以避免301缓存。