首页 > 解决方案 > Django:将 URL 设置为永久 = True 后停止将 URL 重定向到另一个页面

问题描述

出于某种原因,在我的 Django 应用程序中,我使用了 urls.py 文件中的重定向路径,这样每当有人访问 example.com 时,他们就会被重定向到 example.com/blog

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls', namespace='blog')),
    path('', lambda request: redirect('blog/', permanent=True)),
]

现在我已经完全构建了我的站点并添加了 example.com 的视图。为了访问该页面,我从代码库中删除了重定向路径的行,以便在我尝试访问 example.com 时不再重定向到 /blog。

path('', lambda request: redirect('blog/', permanent=True))

但问题是,即使删除了上面的行,我仍然被重定向到 /blog。

即使在全新的 django 项目中,同样的问题仍然存在。即,即使我运行另一个 django 项目,我也无法访问“/”路径,它一直被重定向到“/blog/”。我认为这是由于与永久=真有关的某些事情而发生的。任何帮助将不胜感激扭转这种影响。

提前致谢。

标签: pythondjangodjango-urls

解决方案


该标志permanent=True意味着您的网络服务器301 - Permanent Redirect在有人尝试访问索引页面时返回 a 。您可能应该避免使用它并让网络服务器返回一个302 - Temporary Redirect.

状态301意味着资源(页面)被永久移动到新位置。客户端(浏览器)不应该尝试请求原始位置,而是从现在开始使用新位置。

状态302意味着资源暂时位于其他地方,客户端(浏览器)应继续请求原始 URL。

尽量不要删除整条线,而是按如下方式调整它

path('', views.index, name='index')

也尝试在隐身模式下测试它,或者禁用缓存。


推荐阅读