托管:A2Hosting
部署的 A2Hosting 参考:链接
Python:3.8.1
Django:3.1.1
Web 服务器:Apache
当settings.py中的“SECURE_SSL_REDIRECT = False ”时,在urls.py路径中添加尾部斜杠不会出现问题。
urlpatterns = [
path('admin/', admin.site.urls),
path('login/', dashboard, name="dashboard"),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
事实上,访问 URL http://subdomain.domain.com/login(或 admin)会显示正确的页面。
但是,当我设置“SECURE_SSL_REDIRECT = True ”时,如果我保留尾部斜杠并访问相同的 URL,页面仍会正确显示,但浏览器地址栏中的 URL 会发生变化。
而不是:
https://subdomain.domain.com/login
它变成:
https://subdomain.domain.com/home/user/a2hosting_python_app/login/
对于管理路径,改为:
https://subdomain.domain.com/admin/login/?next=/admin/
变为:
https://subdomain.domain.com/home/user/a2hosting_python_app/admin/login /?next=/home/user/a2hosting_python_app/admin/
此时,如果我编辑urls.py删除尾部斜杠:
urlpatterns = [
path('admin', admin.site.urls),
path('login', dashboard, name="dashboard"),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
登录 URL 显示正确,但管理 URL 不会。
我没有在settings.py中设置 APPENDING_SLASH 。
有谁知道为什么 Django 会这样?我究竟做错了什么?
提前谢谢了。
相关分类