1

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

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

当我请求网址时

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

...而不是转到视图“标签”,它 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>

有人知道我要去哪里错了吗?

4

2 回答 2

1

根据 Django 文档,您应该将以下内容放入您的 Django 设置文件中:

APPEND_SLASH = False
于 2013-03-01T20:04:03.497 回答
0

尝试这个:

url(r'label/(?P<name_value>[\w_-]+)$', 'name.views.label', name='label'),
于 2013-03-01T18:06:36.397 回答