Могут Ли Файлы Robots.txt И Sitemap.xml Быть Динамическими Посредством Перенаправления .Htaccess?

  • Автор темы Evgen672
  • Обновлено
  • 23, Oct 2024
  • #1

У меня мультиязычный и мультидоменный сайт. Он запускается через уникальную установку CMS (Drupal), поэтому у меня есть один корневой каталог. Итак, если у меня есть статический файл robots.txt, насколько мне известно, я могу отображать файлы только для одного домена.

Могу ли я добавить строку в .htaccess

 $_SERVER['HTTP_HOST'] 

(или эквивалентную инструкцию; укажите, какая из них разрешена)

поэтому он перенаправляется в динамический файл php, где я могу обслуживать различный контент в соответствии с Redirect 301 /robots.txt /robots.php ?

И тот же вопрос для карта сайта.xml, поэтому я могу обслуживать динамические карта сайта.php что указывает на разные ссылки для каждого отдельного домена.

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

#htaccess #перенаправления #карта сайта #веб-сканеры

Evgen672


Рег
12 Aug, 2008

Тем
81

Постов
187

Баллов
602
  • 26, Oct 2024
  • #2

Вы можете сделать любой файл динамическим. Лучший способ сделать это — не с помощью перенаправлений, а с помощью правил перезаписи.

 
 
 RewriteEngine 

Таким образом, вы включаете динамический скрипт, но URL-адрес не меняется. Большинство сканеров (включая Googlebot) будут следовать перенаправлениям для robots.txt, но некоторые сканеры запутаются, если вы введете перенаправление.

Обратите внимание: даже если вы используете PHP, ваш файл robots.txt должен появляться быть статичным для каждого сканера для каждого домена. Это нормально — предоставлять разный контент для разных доменов или даже для разных пользовательских агентов. Однако предоставление разного контента случайным образом или в зависимости от времени суток может действительно запутать поисковых роботов и испортить ваше SEO.


Файлы Sitemap можно назвать так, как вы хотите. Вы можете перенаправить их или использовать правило перезаписи, чтобы динамически включать их по одному и тому же URL-адресу. Вы также можете назвать их как

  • сайт-а-sitemap.xml
  • сайт-b-sitemap.xml
  • сайт-c-sitemap.xml

Тогда обратитесь к ним в robots.txt:

RewriteEngine On RewriteRule ^robots\.txt$ robots.php [L]

или отправьте их в поисковые системы вручную с помощью инструментов для веб-мастеров или консоли поиска.

 

Gelanteeflobe


Рег
16 Jul, 2008

Тем
68

Постов
204

Баллов
564
  • 26, Oct 2024
  • #3

Да, таким же образом любой запрос может быть «динамическим».

Однако вы бы не перенаправить (как в вашем примере кода), вы должны внутренне переписать используя mod_rewrite. (То же самое, что, вероятно, уже делает Drupal.)

Например, в корневом файле .htaccess:

Sitemap: http://www.example.com/example-sitemap.xml

RewriteRule ^robots\.txt$ /robots.php [L] should only occur once (although it doesn't really matter if it occurs multiple times).

Вам просто нужно убедиться, что это не конфликтует с другими директивами в вашем файле .htaccess. Итак, это, вероятно, должно быть около начало файла, конечно, до вашего передний контроллер.

 

Beewaygatry84


Рег
31 Mar, 2009

Тем
63

Постов
193

Баллов
518
  • 26, Oct 2024
  • #4

Сделать файл карты сайта динамическим — это нормально: это хороший способ автоматического обновления карт сайта.

Создание динамического файла robots.txt (для одного и того же хоста! Если сделать это для отдельных хостов, это, по сути, обычный файл robots.txt для каждого из них.) может вызвать проблемы: он не сканируется каждый раз, когда URL-адрес сканируется с сайта. , поэтому может случиться так, что кэшируется «неправильная» версия. Например, если вы заблокируете сканирование файла robots.txt в рабочее время, возможно, что тогда он будет кэширован и будет отслеживаться в течение дня, то есть ничего не будет сканироваться (или, альтернативно, кэшироваться, когда сканирование разрешено). Например, Google сканирует файл robots.txt примерно раз в день для большинства сайтов.

 

Ozzza


Рег
31 Jan, 2012

Тем
71

Постов
217

Баллов
612
  • 26, Oct 2024
  • #5

Нет необходимости создавать sitemap.php, потому что:

1. Для каждого языка можно запустить отдельный файл sitemap.xml и указать каждый в консолях поисковых систем.

2. Стандартные файлы карты сайта можно регулярно перезаписывать, включив в них недавний контент, и это делает их динамичными - для этого .php не требуется. Внутренний механизм обновления и cron должны воссоздать тот же файл со стандартным расширением .xml.

Файлы Sitemap.xml являются статическими, и только обновления делают их динамическими — они не обновляются в реальном времени. Можно по причине заставить их перезаписывать каждую минуту, но в этом нет необходимости, потому что:

 

Vic_au


Рег
09 Oct, 2006

Тем
73

Постов
155

Баллов
540
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно