【问题标题】:Returning 410 status code for urls containing certain string为包含特定字符串的 url 返回 410 状态码
【发布时间】:2014-03-11 12:27:37
【问题描述】:

我最近在 stackoverflow 的帮助下创建了一组重写规则,用于包含某些单词或字符串的 301 重定向 url。规则是这样的:

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

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

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

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

【问题讨论】:

    标签: regex apache .htaccess mod-rewrite redirect


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 感谢您的意见。我想,我可以使用这个解决方案。在这种情况下,301 重定向可能不是最佳做法。不幸的是,谷歌对这个话题不是很清楚。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    • 2022-01-27
    • 2012-04-10
    相关资源
    最近更新 更多