【问题标题】:Django: Redirect if the link doesn't match urlpatternsDjango:如果链接与 urlpatterns 不匹配,则重定向
【发布时间】:2018-11-22 09:44:54
【问题描述】:

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

您可以在下面看到我的 urlpatterns,我正在使用 url(r'', RedirectView.as_view(pattern_name='home', permanent=False)) 重定向到我的 /home 页面,但是当它检测到最后没有 / 的链接时,它会将我重定向到 /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))
]

【问题讨论】:

  • 尝试使用r'.*',因为r'' 只会匹配一个空字符串。
  • @solarc 不,这不是真的。

标签: django redirect url-pattern


【解决方案1】:

它正在重定向,因为您错过了主页 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。

【讨论】:

  • 我很高兴它有帮助:)
  • 对不起,如果我问,但有一种方法可以重定向到 sh.mysite 而不是 www.mysite?另外,我删除了家,所以我只有 sh.example.tk ^^
  • 我看不懂你能详细说明一下。sh是什么?
猜你喜欢
  • 2011-06-14
  • 2013-07-16
  • 1970-01-01
  • 1970-01-01
  • 2015-04-12
  • 2022-10-13
  • 2012-08-05
  • 2017-04-18
相关资源
最近更新 更多