regex - Robots.txt 禁用查询参数扫描异常
问题描述
我正在实施一些 SEO 更改,包括 robots.txt 更改,我正在解决这个问题。
我需要禁用(或者准确地说不允许)每个包含一些查询 URL 参数的 URL (?xy=...) 所以我添加了这个规则
Disallow: /*?*
但是有一个小问题。我需要允许特定子 URL 的特定查询参数。所以可以说我需要允许/picture?path=XY。这应该是允许的,但例如/picture-other?path=XY 而不是/picture?other_param=XY(/picture 没问题,但不只是参数命名路径)
是否可以在 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¶m=1
/some/other/route/with/path/param?path=XY
解决方案
您提供的不允许的路径:
/picture?param=1
literally/any/route/with/query/param/you/can/imagine?param=1
/some/other/url?query=5¶m=1
/some/other/route/with/path/param?path=XY
机器人:
Allow: /*
Disallow: /picture?param=*$
Disallow: *param?*
Disallow: *param=*
大多数(如果不是全部)搜索引擎都支持正则表达式:
*
- 通配符
$
- URL 结尾(字符串)
因此,如果您想禁止所有包含param
仅环绕*
它的 url。
更新:
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
推荐阅读
- cassandra - Debezium MongoDB 源 JSON 接收到 Cassandra (LENSES.IO)
- python-3.x - 我在使用 python 时遇到问题,我正在尝试制作 QRcode 创建应用程序
- python - 如何在缩放时更新嵌入在 Scatter 中的 RecycleView 的数据值(即图像宽度、高度)?
- javascript - Node.js express:试图从 HTML 表单中获取文本,req.body 为空
- java - org.json.JSONException: JSONObject["weather"] 不是字符串
- javascript - 将选定的多个值复制到文本框
- javascript - 将函数绑定到对象映射属性并使用箭头函数保留“this”
- python - 模块“google.cloud.speech_v1.types”没有“RecognitionAudio”成员,模块“google.cloud.speech_v1.types”没有“RecognitionConfig”成员
- c++ - 验证用户输入和整数 C++
- mongodb - 使用 $exists 和 $regex 匹配子文档的键 - MongoDb