У меня есть мультиязычный и многодоменный сайт. Он проходит через уникальную установку CMS (Drupal), поэтому у меня есть один корневой каталог. Поэтому, если у меня есть статический файл robots.txt, я могу показать файлы только для одного домена, насколько я знаю.
Могу ли я поставить строку в .htaccess
Redirect 301 /robots.txt /robots.php
(или эквивалентная инструкция, и, пожалуйста, укажите, какая из них разрешена)
поэтому он перенаправляет в динамический файл php, где я могу обслуживать различные содержания в соответствии с $_SERVER['HTTP_HOST']
?
И тот же вопрос для sitemap.xml , поэтому я могу предоставить динамический sitemap.php, который указывает разные ссылки для каждого отдельного домена.
Проблема, связанная с отсутствием использования .txt и .xml, заключается в том, что, как уже упоминалось, все домены совместно используют один физический каталог на сервере.
Ответы:
Вы можете сделать любой файл динамическим. Лучший способ сделать это - не через перенаправления, а через правила перезаписи.
Таким образом, вы включаете его с помощью динамического сценария, но URL не меняется. Большинство сканеров (включая Googlebot) будут следовать перенаправлениям для robots.txt , но некоторые сканеры будут сбиты с толку, если вы введете перенаправления.
Обратите внимание, что даже если вы включите его с помощью PHP, ваш robots.txt должен выглядеть статичным для каждого искателя для каждого домена. Можно обслуживать разный контент для разных доменов или даже для разных пользовательских агентов. Однако подача различного контента в случайном порядке или в зависимости от времени суток может действительно запутать сканеров поисковых систем и испортить ваш SEO.
Файлы Sitemap можно назвать как угодно. Вы можете перенаправить их или использовать правило перезаписи для динамического включения их по одному и тому же URL. Вы также можете назвать их как
Тогда обратитесь к ним в robots.txt :
или отправьте их поисковым системам вручную с помощью инструментов для веб-мастеров или консоли поиска.
источник
RewriteRule ^robots\.txt$ robots.php [L]
без символа \.^/robots\.txt$
бы необходим, если бы эта директива была в конфигурации сервера, но да, она не будет совпадать в файлах .htaccess для каждого каталога. В этом случае префикс косой черты в подстановке (т/robots.php
.Да, точно так же любой запрос может быть «динамическим».
Тем не менее, вы не будете перенаправлять (как в вашем примере кода), вы должны внутренне переписать с помощью mod_rewrite. (То же самое, что Drupal, вероятно, уже делает.)
Например, в вашем корневом .htaccess файле:
RewriteEngine
должно произойти только один раз (хотя это не имеет значения, если это происходит несколько раз).Вам просто нужно убедиться, что он не конфликтует с другими директивами в вашем файле .htaccess. Таким образом, это , вероятно , следует быть рядом с начала файла, конечно же, прежде чем ваш фронт - контроллера .
источник
Создание динамического файла карты сайта - это хорошо, это хороший способ автоматически обновлять карты сайта.
Создание динамического файла robots.txt (для одного и того же хоста! Выполнение этого для отдельных хостов - это, по сути, обычный файл robots.txt для каждого из них.), Скорее всего, вызовет проблемы: он не сканируется каждый раз, когда URL сканируется с сайта , так что может случиться так, что «неправильная» версия кешируется. Например, если вы выполняете обход файла robots.txt в рабочее время, возможно, он затем кэшируется и прослеживается в течение дня - это означает, что ничего не сканируется (или, наоборот, кэшируется, когда сканирование разрешено). Например, Google сканирует файл robots.txt примерно один раз в день для большинства сайтов.
источник
Создавать sitemap.php не нужно, потому что: 1. Для каждого языка вы можете запустить отдельный файл sitemap.xml и указать каждый в консолях поисковой системы. 2. Стандартные файлы карты сайта можно регулярно переписывать, чтобы включить недавний контент, и это делает их динамичными - для этого .php не требуется. Механизм внутреннего обновления и cron воссоздают тот же файл со стандартным расширением .xml.
Файлы Sitemap.xml являются статическими, и только обновления делают их динамическими - они не обновляются в реальном времени. Это может быть причиной, чтобы заставить их переписывать каждую минуту, но в этом нет необходимости, потому что: 1. Google не проверит это менее чем за 1 час с момента последней отправки 2. Когда файлы карты сайта большие, переписывайте их часто производительность сервера будет капать.
Если объем данных большой, а размер файла Sitemap превышает 50 МБ, требуется система с несколькими файлами Sitemap. Это означает, что sitemap2,3 ... .xml будет добавлен в список основного файла, но содержимое в этих файлах также останется неизменным, пока эти файлы не будут воссозданы (например, cron).
Также стоит упомянуть, что как только поисковая система получит доступ к файлу, он не вернется к нему снова очень быстро (если это не сделано вручную). Это подтверждает, что в любом случае нет необходимости создавать обновление sitemap.php в режиме реального времени, потому что обычный sitemap.xml сам по себе может быть динамическим, обновляя новое содержимое в течение дня или недели.
Я не могу думать ни о каких профессионалах, использующих sitemap.php. Это не принесет пользы, так как есть другие лучшие / правильные способы использования этих файлов.
источник