如何将 404 或 500 或 403 等错误重定向到 apache httpd 中的自定义错误页面?
How do I redirect errors like 404 or 500 or 403 to a custom error page in apache httpd?
我创建了一个 Django 项目,但我使用 Apache 作为网络服务器。谁能告诉我如何将 404 或 500 或 400 之类的错误代码重定向到自定义错误 html 页面,而不是在页面上获取标准错误消息,以防发生错误?我尝试了网上提供的解决方案,但 none 似乎有效
from django.conf.urls import (handler403, handler404, handler500)
handler403 = 'my_app.views.permission_denied'
handler404 = 'my_app.views.page_not_found'
handler500 = 'my_app.views.server_error'
你可以这样处理请求。
我有一个django支持的博客,在项目的urls.py:
from django.conf.urls import handler400, handler403, handler404, handler500
urlpatterns = [
url(r'^$', IndexView.as_view(), name='index'),
url(r'^admin/', admin.site.urls),
....
url(r'^rss/$', BlogFeed(), name='rss'),
url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps}, name='sitemap')
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
if not settings.DEBUG:
handler400 = 'common.views.bad_request'
handler403 = 'common.views.permission_denied'
handler404 = 'common.views.page_not_found'
handler500 = 'common.views.server_error'
common/views.py:
def bad_request(request):
context = {}
return render(request, '400.html', context, status=400)
def permission_denied(request):
context = {}
return render(request, '403.html', context, status=403)
def page_not_found(request):
context = {}
return render(request, '404.html', context, status=404)
def server_error(request):
context = {}
return render(request, '500.html', context, status=500)
视图中缺少异常是解决此问题的方法。
变化:
def bad_request(request):
用于:
def bad_request(request, exception):
我创建了一个 Django 项目,但我使用 Apache 作为网络服务器。谁能告诉我如何将 404 或 500 或 400 之类的错误代码重定向到自定义错误 html 页面,而不是在页面上获取标准错误消息,以防发生错误?我尝试了网上提供的解决方案,但 none 似乎有效
from django.conf.urls import (handler403, handler404, handler500)
handler403 = 'my_app.views.permission_denied'
handler404 = 'my_app.views.page_not_found'
handler500 = 'my_app.views.server_error'
你可以这样处理请求。
我有一个django支持的博客,在项目的urls.py:
from django.conf.urls import handler400, handler403, handler404, handler500
urlpatterns = [
url(r'^$', IndexView.as_view(), name='index'),
url(r'^admin/', admin.site.urls),
....
url(r'^rss/$', BlogFeed(), name='rss'),
url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps}, name='sitemap')
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
if not settings.DEBUG:
handler400 = 'common.views.bad_request'
handler403 = 'common.views.permission_denied'
handler404 = 'common.views.page_not_found'
handler500 = 'common.views.server_error'
common/views.py:
def bad_request(request):
context = {}
return render(request, '400.html', context, status=400)
def permission_denied(request):
context = {}
return render(request, '403.html', context, status=403)
def page_not_found(request):
context = {}
return render(request, '404.html', context, status=404)
def server_error(request):
context = {}
return render(request, '500.html', context, status=500)
视图中缺少异常是解决此问题的方法。 变化:
def bad_request(request):
用于:
def bad_request(request, exception):