Блок RewriteRule в robots.txt - PullRequest
       0

Блок RewriteRule в robots.txt

0 голосов
/ 10 октября 2011

Вот пример RewriteRule из моего файла .htaccess:

RewriteRule ^ABC$ index.php?partner_id=123&utm_source=partner&utm_medium=link&utm_campaign=ABC [L]

Так что http://mywebsite.com/123 будет указывать на index.php?partner_id=123&utm_source=partner&utm_medium=link&utm_campaign=ABC

Файл Index.php является очень важной страницей, которая должна быть правильно проиндексирована поисковыми системами, но я бы хотел заблокировать индексирование http://mywebsite.com/123 без влияния на индексирование http://mywebsite.com/ или http://mywebsite.com/index.php.

Любая помощь будет отличной.

1 Ответ

0 голосов
/ 10 октября 2011

Если вы хотите заблокировать http://mywebsite.com/123, но разрешить http://mywebsite.com/123index.php, то вам нужны Allow и Disallow:

User-agent: *
Allow: /123index.php
Disallow: /123

Это запретит все, что начинается с /123, но специально разрешит /123index.php.

Стандартный синтаксис robots.txt не позволяет запрещать определенные URL-адреса. Скорее, он запрещает URL-адреса, начинающиеся с указанного вами шаблона.

Google и Bing (и некоторые другие) имеют некоторые расширения стандартного синтаксиса. Используя поддержку $ подстановочных знаков Google, вы можете написать:

Disallow: /123$

И это заблокировало бы только один этот URL. Другие сканеры могут или не могут поддерживать этот синтаксис.

Примечание в ответ на комментарий:

Если я правильно понимаю, после вашего комментария вы хотите разрешить http://mywebsite.com/index.php, но заблокировать http://mywebsite.com/123. Если вы знаете, что нет других ресурсов, начинающихся с /123, вы можете написать:

Disallow: /123

Это заблокирует все, что начинается с /123. Например, /123/file.html и /123abc. Если есть других ресурсов, начинающихся с /123, и вы хотите их разрешить, то вам понадобится:

Disallow: /123$

Но поймите, что Google и возможно Bing будут уважать этот шаблон. Многие другие сканеры не будут.

...