【发布时间】:2013-02-16 07:49:00
【问题描述】:
我的 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>
有人知道我哪里出错了吗?
【问题讨论】:
-
你确定 Apache 没有为你做重定向吗?验证 Django 是否正在接收请求!
-
Django 正在接收请求。我发现如果我在 settings.py 中注释掉平面页面,它会按预期运行。
标签: django apache redirect django-views