Robots.txt禁用查询参数扫描,但有例外



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

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

Disallow: /*?*

但是有一个小问题。我需要为特定的子URL允许特定的查询参数。比方说我需要允许/picture?路径=XY。这应该被允许,但例如/picture other?path=XY不是,所以/picture?other_param=XY(/picture可以,但不只是参数命名路径(

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

编辑:(可能添加了更明确的说明(

禁用所有包含查询参数的URLS(如/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

您提供的不允许路径

/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=*

Regex被大多数(如果不是所有(搜索引擎支持:

*-通配符

$-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

最新更新