Обычно я добавляю регулярное выражение 404 для всех моих сайтов Django в качестве последнего выражения в моем urls.py:
urlpatterns += patterns('django.views.generic.simple',
(r'^.', 'direct_to_template', {'template': 'unknown.html'}),
Я в целом доволен производительностью этого.Шаблон unknown.html расширяет мой базовый шаблон и приятно информирует зрителя о том, что введенного им URL-адреса не существует, но на странице все еще есть навигация и стиль моего веб-сайта.
Тем не менее, после того, как мне приходится неоднократно указывать людям вводить косую черту, я чувствую, что необходимо установить параметр APPEND_SLASH = True в settings.py.
состояние документов:
Если APPEND_SLASH имеет значение True и начальный URL-адрес не заканчивается косой чертой, и он не найден в URLconf, то новый URL-адрес формируется путем добавлениякосая черта в конце.Если этот новый URL-адрес найден в URLconf, Django перенаправляет запрос на этот новый URL-адрес.В противном случае исходный URL-адрес обрабатывается как обычно.
Поэтому, следуя этой логике, foo.com/bar успешно перехватывается моим выражением URL-адреса "404", прежде чем его можно будет перенаправить на мой foo.com/.Выражение bar / url.* Каков наилучший способ сохранить дружественную / настраиваемую страницу 404 с дружественным пользовательским интерфейсом и при этом использовать APPEND_SLASH или что-то похожее по функциональности? *
- редактировать / ответить -
Почему-то я упустил, что вам просто нужно добавить шаблон с именем 404.html, а также убедиться, что DEBUG = False
Спасибо DTing!