2013-03-01 16 views
1

我在我的Django的網站是不是在我的urls.py匹配模式的問題:Django不匹配pattern /重定向

url(r'label/(?P<name_value>.*)$', 'name.views.label', name='label'), 

當我請求中的URL在

http://<site>/name/label/foo 

...而不是去視圖'標籤',它302重定向與附加的尾部斜槓。

注意:這隻適用於將網站移至我們的測試環境時。當我使用Django內置的迷你服務器(manage.py runserver)執行此操作時,它不會附加斜線並按照我的意圖正確地轉到「標籤」視圖。

在測試環境中,我們使用Django 1.3和Apache 2.2.8

這裏的在/ etc/apache2的/網站可用/默認:

<VirtualHost *:80> 
    ServerName ****************** 
    ServerAdmin ****************** 
    ErrorLog /var/log/apache2/error.log 
    LogLevel warn 

    CustomLog /var/log/apache2/access.log combined 
    ServerSignature On 

    Alias /media /home/media 
    <Location /media> 
     SetHandler None 
    </Location> 

    <Directory /home/media> 
     Options +FollowSymLinks 
    </Directory> 

    SetHandler python-program 
    PythonHandler django.core.handlers.modpython 
    PythonDebug On 
    SetEnv DJANGO_SETTINGS_MODULE site.settings 
    PythonPath "['/home/code', '/home/code/site'] + sys.path" 
</VirtualHost> 

任何人都知道我要去哪裏錯誤?

+0

你肯定Apache不爲你做重定向?確認Django正在接收請求! – 2013-03-01 18:43:12

+0

Django正在收到請求。我發現,如果我在settings.py中註釋flatpages,它會按預期運行。 – 2013-03-01 21:51:47

回答

0

試試這個:

url(r'label/(?P<name_value>[\w_-]+)$', 'name.views.label', name='label'), 
+0

沒有工作 - 仍然重定向,但我同意從「一切」縮小正則表達式是一個好主意。另外,我相信你在那裏有一個額外的權利 – 2013-03-01 18:22:55

1

According to the Django docs,你應該把你的Django設置文件如下:

APPEND_SLASH = False 
+0

所以,只是爲了澄清:我想APPEND_SLASH是真實的。問題不在於附加了斜槓。問題是在我的測試服務器上,該模式與urls.py不匹配 – 2013-03-01 20:10:51