Подавать другой файл robots.txt для каждого сайта, размещенного в том же каталоге

У нас есть глобальный проект веб-сайта, для которого мы работаем только с частью LATAM. Здесь есть процесс установки веб-сайта, который позволяет установить один сайт с несколькими ccTLD, чтобы сократить расходы.

Из-за этого robots.txt в www.domain.com/robots.txt - это тот же файл в www.domain.com.ar/robots.txt

Мы хотели бы реализовать пользовательские файлы robots.txt для каждого региона страны LATAM (AR, CO, CL и т. д.). Одним из решений, о котором мы думаем, является перенаправление, размещенное в www.domain.com.ar/robots.txt до 301 до www.domain.com.ar/directory/robots.txt.

Таким образом, у нас могут быть пользовательские файлы robots.txt для каждой страны.

  1. Это имеет смысл?
  2. Можно ли перенаправить файл robots.txt в другой файл robots.txt?
  3. Любые другие предложения?

Заранее благодарим за любой вклад, который у вас может быть.

5 голосов | спросил Edgar Quintero 25 PMpFri, 25 Apr 2014 21:00:32 +040000Friday 2014, 21:00:32

2 ответа


8

Я не стал бы рассчитывать на то, что все пауки смогут следовать перенаправлению, чтобы добраться до файла robots.txt. См .: Отвечает ли Google заголовок перенаправления для файла robots.txt на другое имя файла?

Предполагая, что вы размещены на сервере Apache, вы можете использовать mod_rewrite из вашего файла .htaccess, чтобы обслуживать правильный файл для правильного домен:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.([a-z\.]+)$
RewriteRule ^robots.txt /%1/robots.txt [L]

В этом случае ваш robots.txt файл для вашего .cl будет в /cl/robots.txt и ваш .com.au robots.txt будет находиться в /com.au/robots.txt

ответил Stephen Ostermiller 25 PMpFri, 25 Apr 2014 22:15:41 +040015Friday 2014, 22:15:41
4

Хотя этот должен работать, он имеет несколько потенциальных недостатков:

Как правило, было бы лучше просто настроить ваш веб-сервер для возврата другого контента для robots.txt в зависимости от домена, для которого он запрошен. Например, используя Apache mod_rewrite , вы можете внутренне переписать robots.txt в файл, специфичный для домена, например:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?domain(\.com?)?\.([a-z][a-z])$
RewriteCond robots_%3.txt -f
RewriteRule ^robots\.txt$ robots_%3.txt [NS]

Этот код, помещенный в файл .htaccess в корневом каталоге общего доступа на сайтах, должен переписывать любые запросы, например. www.domain.com.ar/robots.txt в файл robots_ar.txt, при условии, что он существует (это то, что проверяет второй RewriteCond). Если файл не существует или имя хоста не совпадает с регулярным выражением, стандартный файл robots.txt по умолчанию используется.

(Имя регулярного выражения хоста должно быть достаточно гибким, чтобы также соответствовать URL-адресам без префикса www., а также принимать 2LD co. вместо com. (как в domain.co.uk) или даже просто ccTLD после domain; если это необходимо, вы можете настроить его, чтобы принять еще больше случаев. Обратите внимание, что я не тестировал этот код, поэтому он мог иметь ошибки /опечатки.)

Другая возможность заключалась бы в том, чтобы внутренне переписать запросы для robots.txt для (например) скрипта PHP, который затем может генерировать содержимое файл динамически на основе имени хоста и всего остального, что вы хотите. С mod_rewrite это можно выполнить просто:

RewriteEngine On
RewriteBase /

RewriteRule ^robots\.txt$ robots.php [NS]

(Написание фактического сценария robots.php остается в виде упражнения.)

ответил Ilmari Karonen 25 PMpFri, 25 Apr 2014 22:16:56 +040016Friday 2014, 22:16:56

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132