Динамический Robots.txt, на хостинге не работает конструкция RewriteRule ^robots.txt robots.php
Когда есть необходимость создания динамического robots.txt, например для поддоменов, первое, что приходит в голову это подмена robots.txt на robots.php через .htacsses, в том случае, если мы работает с тем же Open Server прокатывает конструкция :
RewriteRule ^robots.txt robots.php
Но, на большинстве хостинго такая штука не прокатит потому, что статические файлы вроде robots.txt обрабатываются nginx
Вот что говорит мой горячо любимый хостинг Beget - это не сарказм я и правда считаю их лучшими.
Ответ техподдержки Beget
Вся статика с наших серверов отдается веб-сервером nginx, который отдает ее очень быстро, поэтому редирект для robots.txt
работать не будет.
В вашем случае есть два варианта:
-
Мы можем направить статику на Apache, но в таком случае возможны потери производительности и увеличение нагрузки на аккаунте. Тогда редирект на статические файлы будет также работать.
-
Либо более хитрый ход, когда нужно убрать файл
robots.txt
, чтобы его не мог найти и отдатьnginx
и тогда запрос будет передан на Apache, где можно настроить правило редиректа на нужный файл.
Первый вариант нас не устраивает, а второй означает лишь то, что мы удаляем robots.txt совсем с нашего сервера и тогда запросы идут к нашим скриптам php. У меня была необходимость реализации на kohana поэтому все решилось через банальный роутинг
Route::set( robots , robots.txt ) ->defaults
(
array( controller => MainPage , app => front , action => robots )
);
То беж простая переадресация запроса на контроллер MainPage и действие action_robots , а там уже пишем php скрипт какой нужен.
Если ко-му то нужна помощь в данном вопросе, нужна реализация динамического robots на вашем движке обращайтесь цена от 3000 рублей зависит от вашей платформы.
Мои услуги: Программист OpenCart