Как ограничить ловить все URL в Django - PullRequest
1 голос
/ 23 марта 2019

У меня есть проект django с определенными URL-адресами, настроенный по URL-адресу «catchall».

Это так, чтобы я мог перейти к mysite/living, чтобы он передавал значение как живой параметр и извлекал соответствующие детали из моей базы данных.

Мои urls.py:

url(r'^$', views.index, name='index'),
url('about/', views.about_view, name='about_view'),
url('contact/', views.contact_view, name='contact_view'),
url('(?P<colcat>[\w\-]+)/collection/(?P<name>[\w\-]+)$', views.collection_detail, name='collection_detail'),
url('(?P<colcat>[\w\-]+)/$', views.collection_view, name='collection_view'),

Я сталкиваюсь с проблемой, когда все может быть передано в качестве параметра. Это особенно заметно в поисковых системах, где mysite/index.html/index.html возвращает действительную страницу.

Есть ли способ ограничить URL-адреса, которым «разрешено» сопоставляться?

1 Ответ

1 голос
/ 23 марта 2019

Очень маловероятно, что пользователь будет вводить / изменять URL-адреса вручную при просмотре.Каждый просто гуглит и щелкает по любой ссылке, показанной поисковой системой.Итак, вам просто нужно ограничить то, что индексирует поисковая система.

Это можно сделать, добавив файл sitemap.xml в корень вашего веб-сайта.

sitemap.xml указывает все URL-адреса вашего веб-сайта вместе с дополнительной информацией, чтобы упростить его.для поисковых систем для сканирования.Если вы не добавите sitemap.xml, поисковые системы попытаются пролистать все возможные URL. Если они будут добавлены, они не будут.

Уже существует структура создания карты сайта, предоставляемая django: https://docs.djangoproject.com/en/2.1/ref/contrib/sitemaps/

...