robots.txt для Django 1.4

категория: Django

Моя почта уже переполнена сообщениями от гугловского бота, что мой robots.txt не найден. Я решил, что он значит нужен)). Я сильно не разбирался как само правильно писать robots.txt, запретил только индексацию админки. В дальнейшем буду что-то еще добавлять при крайней необходимости. Содержание robots.txt:

User-agent: *
Disallow: /admin/
User-agent: Yandex
Disallow: /admin/
Host: www.acman.ru

Сам файл robots.txt кидаем в папку с шаблонами и пропишем ссылку в urls.py для рендеринга по адресу из корня http://www.acman.ru/robots.txt:

from django.views.generic import TemplateView
...
urlpatterns = patterns('',
...
(r'^robots\.txt$', TemplateView.as_view(template_name='robots.txt', 
    content_type='text/plain')),
...
)

Надеюсь этим все обойдется и робот "Корпорации Добра" будет доволен. Предыдущий метод подходит для Django 1.5, для Django 1.4, 1.3 нужно добавить в респонз "text/plain". Перепишем TemplateView:

class RobotsTemplateView(TemplateView):
    def render_to_response(self, context, **response_kwargs):
        response_kwargs['mimetype'] = 'text/plain'
        return super(TemplateView, self).render_to_response(context, 
                                            **response_kwargs)

ссылка будет какая:

url(r'^robots\.txt$', RobotsTemplateView.as_view(template_name = "robots.txt")),

не забываем подгрузить вьюшку RobotsTemplateView из вашего приложения:

from core.views import RobotsTemplateView


blog comments powered by Disqus