Рубрики
Wordpress

Виртуальный robots.txt в WordPress, ошибка 404 и nginx

Во время работы над очередным сайтом на WordPress возникла необходимость генерировать robots.txt «на лету». К счастью, для этого WordPress располагает удобным функционалом — хуками robots_txt и do_robotstxt.

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

А так можно внедриться в уже созданный в другом месте кода robots.txt

Казалось бы, всё просто и понятно, однако вместо нужного содержимого robots.txt я получал 404 ошибку.

Судя по всему, wordpress даже не обрабатывал запрос при переходе на https://example.com/robots.txt

Оказалось, проблема была в конфиге nginx:

Nginx пытался найти в корне файл robots.txt (которго, не было) и отдавал ошибку 404.

Кстати, такой конфиг рекомендуется в официальной документации WordPress: https://wordpress.org/support/article/nginx/ Это довольно странно.

Исправить проблему достаточно просто. Меняем эту строку на следующую, и всё работает. Обращение к robots.txt обрабатывает WordPress.

Можно поступить ещё проще, просто удалив или закомментировав строку

Перезапускаем nginx и наслаждаемся.

2 ответа к “Виртуальный robots.txt в WordPress, ошибка 404 и nginx”

Столкнулся с такой же проблемой. Однако после внесения указанных изменений в конфиг, вместо 404 ошибки стал 301 редирект на морду.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *