2013-11-22 52 views
1

我想打一個catch在我的Django項目的所有網址...Django的URL與捕獲所有除/ admin和/博客

它工作正常,但現在我不能去我的/ admin和/博客頁面..任何想法,我怎麼能做到這一點?..

我的urls.py

url(r'^admin/', include(admin.site.urls)), 
(r'^blog/$', 'apps.blog.views.index'), 

(r'^([a-zA-Z0-9\-\_]*)', 'apps.review.views.show_search'), 
+0

當我去/管理解決最後的URL模式 - 它只是做一個搜索... – pkdkk

+0

與/博客一樣嗎? – iMom0

回答

0

管理員和博客網址,有結尾的斜槓,即/admin//blog/。尾隨斜線的網址現在應該可以工作。

如果您希望使網址無斜槓地工作,您可以添加條目/admin/blog,並使用RedirectView重定向。

2

你並不需要用手動RedirectView的處理這個。您可能需要將CommonMiddleware添加到您的MIDDLEWARE_CLASSES設置中(如果它尚未在其中)。 (插入「django.middleware.common.CommonMiddleware」到該列表或元組)。它通常靠近該聲明的頂部。它的文檔是在這裏:

https://docs.djangoproject.com/en/1.5/ref/middleware/#django.middleware.common.CommonMiddleware

您還需要確保APPEND_SLASH設置爲True中設置。

而且,你的最後一個模式是可能匹配任何東西,我懷疑可能是你的問題的真正罪魁禍首。不帶後綴斜線的URL都有失敗,以便匹配任何模式它自動重定向到一個與每個中間件一個斜線。我想你可以通過追加/ $該模式