Django:如果 link 与 urlpatterns 不匹配则重定向

Django: Redirect if the link doesn't match urlpatterns

如何让 django 从 www.example.com 重定向到 www.example.com/home?

下面你可以看到我的 urlpaterns,我正在使用 url(r'', RedirectView.as_view(pattern_name='home', permanent=False)) 重定向到我的 /home 页面,但是当它检测到 link 没有 / 最后它会将我重定向到 /home页。

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^home/', views.home, name="home"),
    url(r'^surukkam/$',views.shrink,name="surukkam"),
    url(r'^(?P<inputURL>[0-9a-zA-Z]+)/$',views.retrieve,name="virivu"),
    url(r'', RedirectView.as_view(pattern_name='home', permanent=False))
]

正在重定向,因为您错过了首页 URL 末尾的 ^$

urlpatterns = [
    url(r'^admin/$', admin.site.urls),
    url(r'^home/$', views.home, name="home"),
    url(r'^surukkam/$',views.shrink,name="surukkam"),
    url(r'^(?P<inputURL>[0-9a-zA-Z]+)/$',views.retrieve,name="virivu"),
    url(r'^$', RedirectView.as_view(pattern_name='home', permanent=False))
]

^$ - 这是一个正则表达式,指定 URL 字符串的起点和终点。

每当您的 Django 检测到空字符串时,它将指向此 URL。