【问题标题】:using .htaccess to 410 any wildcard url that contains a question mark使用 .htaccess 410 任何包含问号的通配符 url
【发布时间】:2015-10-20 22:23:36
【问题描述】:

我已经查看和搜索,但还没有找到这个问题的答案 - 我认为它应该很简单,但我不确定。

基本上,我很想学习如何使用 .htaccss 来 410(已消失)我网站上包含问号的任何 URL。

例如

这样的网址我想要一个 410

mysite.com/content/page.htm?no_redirect=true

但不要管原始网址 mysite.com/content/page.htm

当我在 5 月份创建我的网站的移动版本时,一个编码问题创建了很多带有通配符/问号的页面,我想告诉谷歌这些页面都没有 .htaccess。

感谢您的帮助 - 这里有很棒的网站和资源!

【问题讨论】:

  • 您对使用查询字符串处理或重定向 URL 不感兴趣,对吗?你只是想提供一个410平板吗?此外,您真的想将其应用于使用查询字符串提交的所有 URL 吗?没有例外?
  • @MichaelBerkowski - 是的,这是正确的。我不在我网站上的任何 URL 中使用查询字符串 - 所以任何有一个 URL 的 URL 都不应该被编入索引,并且应该是 410。我不需要它来重定向。感谢你的回复。我很感激!

标签: .htaccess


【解决方案1】:

对于包括 ? 在内的所有 URL,您实际上是在请求具有非空查询字符串的任何 URL,与 Apache 的 %{QUERY_STRING} 变量匹配。您可以使用RewriteCond 匹配任何带有. 的字符来表示它是非空的,然后使用RewriteRule 发送410 代码。

您可能希望将此与 an ErrorDocument directive 结合使用,以提供伴随 410 代码的错误页面。

# Make sure an error page is defined for 410
ErrorDocument 410 /path/to/custom/410.html

# For any non-empty query string
RewriteCond %{QUERY_STRING} ^.
# Match any path and send a 410 response
# The [L] prevents further matches from being executed
RewriteRule ^ - [R=410,L]

cmets后的补充:

要将 410 仅应用于包含 no_redirect=true 参数的 URL,您可以将其用作 RewriteCond 中的表达式。由于%{QUERY_STRING} 包含整个查询字符串(? 除外),因此只需使用整个 key=value 对即可。

RewriteCond %{QUERY_STRING} no_redirect=true [NC]
RewriteRule ^ - [R=410,L]

注意,我还添加了[NC](不区分大小写)以使其不区分大小写。

【讨论】:

  • 迈克尔,你很快!我明天要玩这个第一件事,看看我是否可以让它工作和测试等。我会告诉你的。非常感谢您的时间-在这个世界上并非每天您都可以得到一个完全陌生的人来帮助-为此,谢谢!
  • 我正在考虑这个问题,并想问:是否有可能使用 .htaccess 来 410 (Gone) 任何包含常见的特定单词或字符的 url,而不是仅仅这样做它有一个像上面那样的非空查询字符串?我想要删除的 URL 都包含一个?,但它们也有一个共同点:no_redirect=true 那么,任何其中包含 no_redirect=true 的 URL - 有没有办法使用 .htaccess 对其进行 410 处理?具有这种共性的 URL 示例是:mysite.com/content/page.htm?no_redirect=true
  • @DKB 当然可以。我上面的RewriteCond 非常通用——它只使用. 来匹配任何单个字符。要要求 no_redirect=true,您可以在条件中使用它:RewriteCond %{QUERY_STRING} no_redirect=true
  • 迈克尔,效果很好。我知道这对你来说很简单,但对于像我这样对 htaccess 还不完全满意的人来说,它非常有帮助。我选择了该选项,而不是仅对非空查询字符串进行 410-ing,因为,我记得我网站的博客部分有一个搜索功能,所以第二个解决方案是完美的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-03
  • 2014-06-23
  • 2021-09-13
  • 2013-12-17
  • 2017-05-09
相关资源
最近更新 更多