【问题标题】:Robots.txt disable query parameters scanning with exceptionsRobots.txt 禁用查询参数扫描异常
【发布时间】:2020-06-28 13:13:40
【问题描述】:

我正在实施一些 SEO 更改,包括 robots.txt 更改,我正在解决这个问题。

我需要禁用(或者准确地说是不允许)每个包含一些查询 URL 参数 (?xy=...) 的 URL 所以我添加了这条规则

Disallow: /*?*

但是有一个小问题。我需要允许特定子 URL 的特定查询参数。 所以假设我需要允许 /picture?path=XY。这应该被允许,但例如 /picture-other?path=XY 不允许,如 /picture?other_param=XY em>(/picture 没问题,但不只是名为 path 的参数)

是否可以在 robots.txt 中执行此操作?

编辑: (也许添加了更清晰的说明)

禁用所有包含查询参数的 URL(如 /x?param=1),但允许 URL /picture 上的查询参数路径。 因此,只有一个允许的带有查询参数的 URL 将是 /picture?path=XY 不允许机器人使用其他包含查询参数的 URL

例子

允许

/picture?path=XY
/literally/any/route/without/query/param/you/can/imagine
/home
/

现在允许

/picture?param=1
literally/any/route/with/query/param/you/can/imagine?param=1
/some/other/url?query=5&param=1
/some/other/route/with/path/param?path=XY

【问题讨论】:

  • 这个问题似乎是题外话,因为它是关于 SEO 这在 Stack Overflow 上是题外话。请阅读"Which SEO questions should be closed as non-programming/non-admin?",以更好地了解何时可以在此处提出 SEO 问题(大多数情况不可以)以及您可以在哪里获得帮助。
  • @JohnConde 你好,是的,我一直在思考它是否是关于 SO 的正确问题,并且它主要是要编写正确的正则表达式,这是常见的问题。但如果我误解了规则,我可以将此问题移至 Webmasters SE
  • @Joel 这就是问题所在,我想禁止所有包含查询参数的 URL,除了一个包含一个特定查询参数的特定 URL。
  • 还要确保您要执行的操作需要 robots.txt 或者您的意思是 X-Robots-Tag

标签: regex .htaccess robots.txt


【解决方案1】:
您提供的

不允许的路径

/picture?param=1
literally/any/route/with/query/param/you/can/imagine?param=1
/some/other/url?query=5&param=1
/some/other/route/with/path/param?path=XY

机器人:

Allow: /*
Disallow: /picture?param=*$
Disallow: *param?*
Disallow: *param=*

大多数(如果不是全部)搜索引擎都支持正则表达式:

* - 通配符

$ - URL 结束(字符串)

因此,如果您想禁止所有包含param 的网址,只需将* 包裹起来即可。

更新:

Allow: /picture?*
Disallow: *?*=*
Disallow: *?*=*&*=*
Disallow: *?*=*=*

将阻止:

http://my-domain.com/test?xwadwa=1
http://my-domain.com/dwa?query=1
http://my-domain.com/test?dwadwa=1
http://my-domain.com/test?dwadwa=1&zxxxa=1
http://my-domain.com/test/dwa/dwa/dwa/dwa/dwa/dwa?xxxx=1

但会允许:

http://my-domain.com/picture?everything_after_this_point
http://my-domain.com/picture?everything_after_this_point&query=32131
http://my-domain.com/
http://my-domain.com/test/
http://my-domain.com/test/test/
http://my-domain.com/test/test/test/
http://my-domain.com/test/test/test/test

【讨论】:

  • 参数名称可以是任何东西,这就是为什么我在禁止示例中编写了 2 个查询参数(例如现在只是参数,但将来可以添加一些其他过滤方法 - 一些新的产品信息人们想要过滤产品-在那个时候这些机器人将无法工作。我需要从字面上阻止任何查询参数给定 exept query param path on /picture URL
  • 是的,这就是我想要的,但我不确定如果我使用像你写的规则(或我在原始问题中写的规则 - 这将禁止 URL 中的所有参数),这些允许规则将起作用(之前禁用所有参数的规则不会覆盖允许规则)
  • 是的,这正是我想要的。非常感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2021-03-25
  • 2015-05-07
  • 2017-09-04
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-03
相关资源
最近更新 更多