You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Django Redirect App配置自定义410错误页面?

如何在Django中配置自定义410 Gone错误页面

嘿,这个需求我之前刚好实现过!用Django配置自定义410页面的思路和配置404、500页面很像,下面给你一步步拆解:

1. 创建自定义410模板

首先在你的项目模板目录(比如项目根目录下的templates文件夹,或者对应app的templates文件夹)里新建一个410.html文件,写好你想要的自定义页面内容——比如给用户的提示文字、网站样式、导航链接等等。

举个简单的模板示例:

<!DOCTYPE html>
<html>
<head>
    <title>页面已永久移除</title>
    <style>
        body { text-align: center; padding: 50px; font-family: Arial, sans-serif; }
        h1 { font-size: 50px; }
        p { font-size: 20px; }
    </style>
</head>
<body>
    <h1>410 - 页面已永久移除</h1>
    <p>你访问的内容已经被我们永久移除,不再提供访问。</p>
    <p>可以返回<a href="/">首页</a>浏览其他内容哦~</p>
</body>
</html>

2. 配置URLconf指向410处理

打开项目根目录的urls.py,添加handler410配置,指定处理410错误的视图:

方式一:直接用默认模板渲染(简单快捷)

如果不需要额外的逻辑,只需要展示自定义模板,直接把handler410指向Django内置的错误视图即可:

from django.views.defaults import page_gone

handler410 = page_gone

Django会自动去你的模板目录找410.html来渲染。

方式二:自定义视图(适合需要额外逻辑的场景)

如果需要在返回410页面时做一些额外处理(比如记录日志、统计访问量),可以自己写一个视图函数:

# 在你的某个app的views.py里
from django.shortcuts import render

def custom_410(request, exception=None):
    # 这里可以添加自定义逻辑,比如记录访问日志
    return render(request, '410.html', status=410)

然后在根urls.py里指向这个视图:

from your_app.views import custom_410

handler410 = custom_410

3. 关键注意事项

  • 关闭DEBUG模式:只有当settings.py里的DEBUG = False时,Django才会使用自定义的错误页面,否则会显示默认的调试页面。
  • 模板路径配置:确保你的TEMPLATES设置里包含了存放410.html的目录,比如:
# settings.py
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'],  # 这里要包含你的模板目录
        'APP_DIRS': True,
        # 其他配置...
    },
]
  • Redirect App配合:你用的Redirect App,要返回410的话,在Admin添加重定向条目时,把new_path留空即可——Django会自动对这些旧路径返回410状态码,然后用上你自定义的页面。

这样配置完成后,用户访问那些旧链接时,就会看到你自定义的410页面啦!

内容的提问来源于stack exchange,提问作者mcm66103

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:40:39