Почему /robots.txt открывается как c www, та и без?

safronoff343
На сайте с 21.08.2012
Offline
100
929

Всем привет!

/robots.txt отдает 200 OK как с www, так и без...

В .htaccess настроен редирект на www.

Все страницы перекидывают и отдают 301 на www

Почему так с /robots.txt может подскажет кто?

Спасибо!

pasha061
На сайте с 17.05.2012
Offline
40
#1

Предположу что файлы обрабатываются Nginx и не отдаются на обработку Апачу. Ну или в эту сторону копать.

.
doctorpc
На сайте с 12.07.2009
Offline
112
#2
pasha061:
Предположу что файлы обрабатываются Nginx и не отдаются на обработку Апачу. Ну или в эту сторону копать.

Ууточню - статические файлы. Часто nginx настраивается на самостоятельную обработку статики, например txt, jpg, png файлов а обработку сценариев часто уже возлагают на apache.

В файле .htaccess содержатся инструции для apache, но не для nginx.

---------- Добавлено 28.02.2014 в 14:44 ----------

В .htaccess точно нет упоминания robots.txt до редиректа? Очень похоже на настройку склейки двух зеркал при котором специально убирается редирект с robots.txt для домена, который хотят склеить, чтобы робот мог получить файл и прочитать директиву Host

SeVlad
На сайте с 03.11.2008
Offline
1609
#3
safronoff343:
В .htaccess настроен редирект на www.

Давай начнём с этого. Содержимое в студию.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
safronoff343
На сайте с 21.08.2012
Offline
100
#4

Задал хостеру вопрос. Вот что ответили, но я так и не понял как решить проблему.

На наших серверах работает связка nginx+apache. Через nginx отдаются статические файлы.

Это значит файлы не обрабатываются через apache и если есть какие-то директивы в файле .htaccess, то они тоже не подействуют. Чтобы Apache мог обработать данные файлы, нужно создавать ссылки на файлы с другим расширением, либо на файлы, отсутствующие на сервере. В этом случае запрос будет передаваться веб-серверу Apache, и можно будет использовать директивы .htaccess для обработки этих запросов.



---------- Добавлено 03.03.2014 в 15:16 ----------

SeVlad:
Давай начнём с этого. Содержимое в студию.

В .htaccess все в порядке. Забыл написать, что сайт на старом хостинге работал нормально.

Проблема началась когда переехал на TimtWeb

J
На сайте с 20.02.2014
Offline
120
jkm
#5

Вам хостер вполне внятно объяснил.

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

Нужно добавить RewriteRule ^robots.txt new_robots.txt сразу после правил для редиректа на www.

Должно получиться что-то вроде этого:


RewriteEngine On

RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule (.*) http://www.example.com/$1 [L,R=301]

RewriteRule ^robots.txt new_robots.txt

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
safronoff343
На сайте с 21.08.2012
Offline
100
#6
jkm:
Вам хостер вполне внятно объяснил.
Что бы запрос robots.txt попал на обработку к apache, файл с таким именем должен отсутствовать, т.е. его нужно просто переименовать, например в new_robots.txt и тогда будет возможность применить к нему директивы .htaccess.
Нужно добавить RewriteRule ^robots.txt new_robots.txt сразу после правил для редиректа на www.
Должно получиться что-то вроде этого:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule (.*) http://www.example.com/$1 [L,R=301]

RewriteRule ^robots.txt new_robots.txt

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]

Спасибо, все заработало так

RewriteRule ^robots.txt .robots

Переименовал в .robots

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий