Python Django handler404正在更改我的URL
我已经定义了自己的404处理程序,但似乎当我使用它时,我的URL正在改变。 我已经在我的根url.py中定义了404处理程序,下面是代码的一部分Python Django handler404正在更改我的URL,python,django,django-urls,Python,Django,Django Urls,我已经定义了自己的404处理程序,但似乎当我使用它时,我的URL正在改变。 我已经在我的根url.py中定义了404处理程序,下面是代码的一部分 def page_not_found(request): if request.session.has_key('loggedin'): return HttpResponseNotFound(login_404) path = request.path if path.startswith('/path'):
def page_not_found(request):
if request.session.has_key('loggedin'):
return HttpResponseNotFound(login_404)
path = request.path
if path.startswith('/path'):
return HttpResponseNotFound(non_loign_404)
handler404 = page_not_found
其中,login_404和non_login_404是字符串。我渲染并保留它们,以便更快地访问
根据应用程序中的上下文,我有不同的404页面
来谈谈我的实际问题:
假设我有url/a/b
启用自定义404处理程序后,url变为/a/a/b
如果我有/path/x,它将变成/path/path/x
有什么不对劲的,请告诉我。提前谢谢
编辑
直到我第一次遇到404,每个url如果得到正确的解析,但是从第一个404页面开始,每个url都被解析为404 你说它“变成”是什么意思?当您访问
/a/b
时(假设不存在),浏览器会将您重定向到/a/b
,而不是显示您的自定义404?这有时是您在Web服务器中如何配置django的问题。你是怎么设置的?我的apache配置很好。我强烈地看到,当我启用自定义404处理程序时,它正在更改URL。如果注释掉该处理程序,则会检测到实际的URL。如何在URL.py中查看?我不明白