#django #django-urls
#django #django-urls
Вопрос:
Я добавил 2 просмотра в свою конфигурацию Django urls для SEO, но когда я просматриваю их на своем сайте, они перенаправляют их на URL, который я настроил, но с добавленной косой чертой. Я знаю, что Django любит приводить в порядок URL-адреса с помощью косой черты (и мне это нравится), но есть ли способ исключить один URL или несколько URL-адресов из этой функции?
...
url(r'^robots.txt/$', TemplateView.as_view(template_name='robots.txt', content_type='text/plain')),
url(r'^sitemap.xml/$', TemplateView.as_view(template_name='sitemap.xml', content_type='text/xml')),
...
Они добавляют косую черту к URL-адресам, что приводит к robots.txt/
и sitemap.xml/
не robots.txt
и sitemap.xml
Комментарии:
1. Глядя на источник CommonMiddleware:should_redirect_with_slash если ваш URL без косой черты будет допустимым, он не должен перенаправлять на URL с косой чертой — вы пытались удалить косую черту перед
$
?
Ответ №1:
Если вы не хотите использовать косые черты в конце robots.txt
и sitemap.xml
, то просто удалите конечные косые черты из этих регулярных выражений.
url(r'^robots.txt$', TemplateView.as_view(template_name='robots.txt', content_type='text/plain')),
url(r'^sitemap.xml$', TemplateView.as_view(template_name='sitemap.xml', content_type='text/xml')),
Затем URL-адреса /robots.txt
и /sitemap.xml
будут совпадать, и Django не будет добавлять косую черту.
Комментарии:
1. Не знаю, как я это пропустил. Спасибо, что сохранили мое здравомыслие!