2013-03-01 12 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