2017-04-04 52 views
0

這個問題可能已經被問了很多次,但我找不到這是一個基本的東西。我的網站有一個問題,就是谷歌搜索的子網址重定向到了錯誤的頁面。Django的別名在錯誤的URL上重定向到正確的URL

這裏是網址:

www.example.com/login/user/ #wrong url 

www.example.com/accounts/login/ #correct url 

urls.py : url(r'^accounts/login/$', auth_views.login, name='login'), 

我想用戶重定向到正確的網址,如果他訪問錯誤之一。我知道使用redirect(reverse('...'))可以做到這一點,但僅僅爲此目的聽起來並不是最好的方式。

有沒有一種方式來重定向用戶,當他輸入一個錯誤的網址到另一個只使用urls.py

回答

1

您通常會在您的網絡服務器上執行此操作,例如,阿帕奇

RewriteRule /login/user/ /accounts/login/ [R=301,L] 

這樣你就不需要加載的Django做一個靜態重定向(如網站設計的發展可能會建立的這些較長的列表)。

+0

哦,這絕對是一個很好的解決方案!我需要探索它! – Lindow

0

一種解決方案是使用內部urls.pyRedirectView如下所示的docs

因此,舉例來說:

url(r'^login/user$', RedirectView.as_view(pattern_name='login')), 
0

urls.py,您可以添加:

url(r'^login/user/$', auth_views.login, name='login') 

它好像你知道這一點。我不明白你的問題嗎?

+0

問題是,它不重定向,但留在登錄/用戶的頁面,有沒有辦法使URL更改爲帳戶/登錄? – Lindow