【问题标题】:Django Apache Redirect ProblemDjango Apache 重定向问题
【发布时间】:2010-11-05 09:22:36
【问题描述】:

我正在使用 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 上的应用程序根目录下方? IE。如何使 /accounts/... 页面改为 /cflow/accounts/...?

感谢您的帮助。

【问题讨论】:

    标签: django apache redirect mod-wsgi


    【解决方案1】:

    要尝试的事情:

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

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

      LOGIN_URL = '/cflow/accounts/login/'

    【讨论】:

    • 谢谢。我希望有一个对 Django 应用程序透明的解决方案。我希望能够在一个地址/服务器上测试站点并在另一个地址/服务器上进行部署,而无需任何额外配置。不过,我将研究站点框架。感谢您的提示。
    • 我也认为它会更简单,但这绝对是一个正确的答案。我遇到了同样的问题,终于找到了这个答案。谢谢亚历克斯!
    猜你喜欢
    • 2011-03-08
    • 1970-01-01
    • 2019-09-25
    • 2011-08-02
    • 1970-01-01
    • 2015-02-15
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多