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

虚拟主机环境下Django登录管理后台出现404错误求助

解决Django Admin登录后出现404的问题

嘿,我之前也踩过这个一模一样的坑,咱们一步步来排查解决:

1. 先检查登录跳转路径配置

Django默认在登录成功后会跳转到/accounts/profile/,如果你的项目里没配置这个路由,直接就会404。这是最常见的原因!

你只需要在项目的settings.py里添加一行配置,指定登录后跳回admin后台:

# 直接写路径
LOGIN_REDIRECT_URL = '/admin/'

# 或者更规范的用reverse_lazy(推荐)
from django.urls import reverse_lazy
LOGIN_REDIRECT_URL = reverse_lazy('admin:index')

2. 核对admin的URL配置是否正确

你说urls.py看起来没问题,但再仔细核对下结构:
如果你用的是Django 2.0+的path语法:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    # 你的其他路由...
]

如果是旧版的url语法(对应你代码里的from django.conf.urls import include, url):

from django.contrib import admin
from django.conf.urls import include, url

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # 你的其他路由...
]

确保admin.site.urls确实挂载在/admin/路径下,没有拼写错误。

3. 确认必要的中间件没丢

登录和会话处理依赖几个关键中间件,去settings.py的MIDDLEWARE列表里检查,确保包含这些:

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',  # 处理会话
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',  # 处理认证
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

少了SessionMiddleware或AuthenticationMiddleware的话,登录状态根本没法正常维持,大概率会出跳转问题。

4. 清掉浏览器缓存和Cookie试试

有时候浏览器缓存的旧会话、过期Cookie会搞出奇怪的跳转bug,试试清除当前站点的缓存和Cookie,或者用隐私模式打开页面再登录测试。

5. 看看调试页面的详细信息

如果你的项目DEBUG = True,404页面会显示所有尝试匹配的路由规则。仔细看看页面上显示的“Requested URL”是什么,是不是登录后跳去了某个你没配置的路径——这能帮你快速定位问题根源。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:46:10