Как я могу подтвердить, что файл Robots.txt используется правильно? - PullRequest
0 голосов
/ 30 октября 2018

У меня есть несколько доменов stag и dev для проекта, над которым я работаю, и в конечном итоге у меня будет настоящая производственная среда. Я создал два robots.txt файла:

  1. robots.txt
  2. robots-nocrawl.txt

Первый, конечно, стандартный файл, который я хочу запустить на производстве и разрешить Google сканировать. Я не хочу, чтобы мои dev и stag домены индексировались, поэтому я хочу, чтобы robots-nocrawl.txt срабатывал при доступе к этим доменам, этот файл просто имеет Disallow /.

Я добавил необходимый код в файл .htaccess, см. Ниже, и перенес изменения в мою среду разработки. Я могу видеть, что файл nocrawl есть, но подтягивает URL, но как проверить / подтвердить, что файл robots-nocrawl.txt используется, когда я нахожусь в dev / stag? Я не смог найти способ проверить это.

RewriteCond %{HTTP_HOST} ^stag\.mollywade\.([a-z\.]+)$ [OR]
RewriteCond %{HTTP_HOST} ^dev\.mollywade\.([a-z\.]+)$ [OR]
RewriteRule ^/robots\.txt$  /robots_nocrawl.txt [L]

Любая помощь и / или предложения будут с благодарностью.

1 Ответ

0 голосов
/ 30 октября 2018

Чтобы убедиться, что он работает как положено, просто сделайте необходимый запрос. Например:

  • example.com/robots.txt должен вернуть содержимое robots.txt.
  • stag.example.com/robots.txt должен вернуть содержимое robots_nocrawl.txt.
  • dev.example.com/robots.txt должен вернуть содержимое robots_nocrawl.txt.

ОДНАКО, у вас есть пара критических ошибок в вашем текущем файле .htaccess, которые мешают этому работать:

  • Шаблон RewriteRule ^/robots\.txt$ никогда не будет совпадать в контексте .htaccess для каждого каталога. Там не должно быть префикса косой черты. Это должно быть ^robots\.txt$.

  • У вас есть OR оба условия, которые (если бы не вышеприведенный шаблон не соответствовал) привели к RewriteRule выполнению безоговорочно!

Итак, эти директивы должны быть записаны как:

RewriteCond %{HTTP_HOST} ^(stag|dev)\.mollywade\.([a-z.]+)
RewriteRule ^robots\.txt$  /robots_nocrawl.txt [L]

Вы можете также объединить эти два условия в одно, тогда вы можете полностью удалить флаг OR. Нет необходимости экранировать буквальную точку при использовании внутри класса символов. Трейлинг $ является излишним, поскольку регулярное выражение по умолчанию жадное.

этот файл просто имеет Disallow /

Полагаю, это просто опечатка в вашем вопросе, так как вам не хватает :. Это должно быть Disallow: /.

...