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

Django新手求助:访问pages/index.php出现404页面未找到错误

Django 404错误排查与解决

问题描述

访问https://mydomain/pages/index.php时触发404页面未找到错误,Django返回的URL匹配规则列表中无对应路径。

错误原因

  1. 现有URL配置未匹配.php后缀路径:你的pages/urls.py仅配置空路径''对应首页视图,但访问路径是pages/index.php,Django的path规则为精确匹配,无法识别带.php后缀的请求路径。
  2. URL配置存在冗余(非当前404直接原因):pages/urls.py中path('pages/streaming/', ...)会导致实际访问路径变为/pages/pages/streaming/,与预期的/pages/streaming/不符。

解决方案

方案1:添加匹配.php后缀的URL规则

在pages/urls.py中添加正则路径规则,匹配index.php:

from django.urls import path, re_path
from . import views

urlpatterns = [
    # 保留原有所有规则...
    re_path(r'^index\.php$', views.index, name='index_php'),
]

配置后,访问/pages/index.php即可触发首页视图,解决404问题。

方案2:服务器端重写URL(推荐)

如果是旧链接或外部请求导致带.php后缀的访问,建议通过服务器配置重写规则,将/pages/index.php重定向到首页/,更符合Django的URL设计规范:

  • Nginx配置示例:
    server {
        # 其他配置...
        rewrite ^/pages/index.php$ / permanent;
    }
    
  • Apache配置示例:
    RewriteEngine On
    RewriteRule ^pages/index.php$ / [R=301,L]
    

额外优化:修正冗余URL规则

pages/urls.py中的path('pages/streaming/', views.streaming, name='streaming')存在路径冗余,由于项目urls.py已将空路径指向pages.urls,实际访问路径会变成/pages/pages/streaming/,建议修改为:

path('streaming/', views.streaming, name='streaming'),

修改后访问/pages/streaming/即可正确匹配视图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:40:15