Robots.txt отключить проверку параметров запроса с исключениями - PullRequest
0 голосов
/ 17 марта 2020

Я внедряю некоторые SEO-изменения, в том числе robots.txt, и решаю эту проблему.

Мне нужно отключить (или запретить быть точным) каждый URL, содержащий некоторые параметры URL-адреса запроса (? Xy = ...) Поэтому я добавил это правило

Disallow: /*?*

Но есть небольшая проблема. Мне нужно разрешить указывать c параметры запроса для заданного c под URL. Допустим, мне нужно разрешить / picture? Path = XY . Это должно быть разрешено , но, например, / picture-other? Path = XY не , так как / picture? Other_param = XY ( / картинка в порядке, но нет только параметра с именем path)

Возможно ли это сделать в robots.txt?

РЕДАКТИРОВАТЬ: (возможно, добавлены более четкие инструкции)

Отключить ВСЕ URL-адреса, содержащие параметры запроса (например, / x? Param = 1) , но разрешить путь к параметру запроса по URL / изображению . Таким образом, только один разрешенный URL с параметром запроса будет / picture? Path = XY , другие роботы, содержащие параметры запроса, не будут разрешены для роботов

Примеры

Разрешено

/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

1 Ответ

1 голос
/ 17 марта 2020

Запрещенные пути Вы указали:

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

Регулярное выражение поддерживается большинством ( если не все ) поиском -engines:

* - подстановочный знак

$ - конец URL (строка)

Поэтому, если вы хотите запретить все 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
...