Роботы: блокировать /язык/страницу из индекса, но сохранять /страницу
Моя структура URL-адресов выглядит примерно так:
/group1/
/group2/
/group3/
Group3
( и это подстраницы) также доступны на другом языке по следующим URL-адресам. К этому URL-адресу был добавлен префикс lang:
/lang/group3/
К сожалению, обновление CMS привело к тому, что следующие URL-адреса теперь считаются допустимыми, даже если они не были переведено.
/lang/group1
/lang/group2
Я хотел бы разрешить /group3
и /lang/group3
, но заблокировать /lang/group*
из индекса.
Каков правильный синтаксис роботов для этого?
1 answers
Если у вас буквально есть только несколько "групп", которые вы хотите заблокировать, то вы бы сделали что-то вроде:
User-agent: *
Disallow: /lang/group1
Disallow: /lang/group2
...и все остальное было бы разрешено. Это будет работать со всеми роботами, которые подчиняются первоначальному "стандарту". Или вы можете заблокировать все группы (group1
, group2
, и т.д.) и сделайте исключение для "группы 3", например:
User-agent: *
Disallow: /lang/group
Allow: /lang/group3
Обратите внимание, что директива Allow
не является частью первоначального "стандарта", но имеет универсальную поддержку. URL-путь - это просто префикс.
ОДНАКО я бы не стал использовать robots.txt чтобы заблокировать "просматриваемые" страницы. А как насчет случайных посетителей? А плохие боты? И robots.txt не препятствует индексированию страниц, если на них случайно установлены ссылки. Я бы использовал .htaccess или конфигурацию вашего сервера, чтобы фактически блокировать весь трафик на эти URL-адреса. Что-то вроде следующего в .htaccess:
RewriteEngine On
RewriteRule ^lang/group[12] - [R=404]
Отвечать 404 на все запросы к этим недопустимым URL-адресам. Или используйте флаг F
, чтобы ответить 403 "Запрещено".