Django与预期的模式不匹配,并附加斜线w /重定向

时间:2013-03-01 18:01:28

标签: django apache redirect django-views

我有一个问题,我的Django网站与我的urls.py中的模式不匹配:

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

当我在

请求网址时
http://<site>/name/label/foo

...而不是转到视图'label',它302重定向,附加一个斜杠。

注意:这仅在我将网站移至测试环境时才有效。当我使用Django内置的迷你服务器(manage.py runserver)执行此操作时,它不会附加斜杠,而是直接进入“标签”视图,正如我想要的那样。

在测试环境中,我们使用的是Django 1.3和Apache 2.2.8

这是/ etc / apache2 / sites-available / default:

<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>

任何人都知道我哪里出错了?

2 个答案:

答案 0 :(得分:1)

According to the Django docs,您应该在Django设置文件中添加以下内容:

APPEND_SLASH = False

答案 1 :(得分:0)

试试这个:

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