12

我正在使用 mod_wsgi 将我的 Django 项目配置为在 Apache 上运行。我正在尝试在 apache 上的目录“cflow”下运行 Django,但遇到了重定向问题。

我的 apache conf 看起来像这样:

...
WSGIScriptAlias /cflow "C:\Program Files\Apache Software Foundation\Apache2.2\wsgi\django.wsgi"
<Directory "C:\Program Files\Apache Software Foundation\Apache2.2\wsgi">
    Order allow,deny
    Allow from all
</Directory>
<Directory "C:\Projects\myproject\src">
    Order allow,deny
    Allow from all
</Directory>

我遇到的问题是,如果用户没有登录,对 /cflow/somepage.html 的请求将被重定向到 /accounts/login?next=/cflow/somepage.html。这个新地址不在 django root (cflow) 之下,因此 apache 以 404 Not Found 响应。

我的问题是如何将 Django 重定向映射到 apache 上的应用程序根目录下方?即如何使 /accounts/... 页面改为 /cflow/accounts/...?

谢谢你的帮助。

4

1 回答 1

15

要尝试的事情:

  1. 在“站点”框架中将当前域更改为“yourdomain.tld/cflow” 。使用 django admin 或 dumpdata/loaddata manage.py 命令很容易做到。

  2. 看起来您的网站正在使用login_required装饰器。在这种特殊情况下,您可以添加到settings.py

    LOGIN_URL = '/cflow/accounts/login/'

于 2009-06-24T09:47:28.103 回答