我有一个问题,我的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>
任何人都知道我哪里出错了?
答案 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'),