问题 Django Apache重定向问题


我正在使用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 / ...?

谢谢你的帮助。


6728
2018-06-24 02:50


起源



答案:


要尝试的事情:

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

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

    LOGIN_URL ='/ cflow / accounts / login /'


15
2018-06-24 09:47



谢谢。我希望有一个对Django应用程序透明的解决方案。我希望能够在一个地址/服务器上测试该站点,并在没有任何其他配置的情况下部署在另一个地址/服务器上。不过,我会研究网站框架。谢谢你的提示。 - liminal
我认为它也会更直接,但这绝对是一个正确的答案。我遇到了同样的问题,终于找到了答案。谢谢亚历克斯 - anonymous coward


答案:


要尝试的事情:

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

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

    LOGIN_URL ='/ cflow / accounts / login /'


15
2018-06-24 09:47



谢谢。我希望有一个对Django应用程序透明的解决方案。我希望能够在一个地址/服务器上测试该站点,并在没有任何其他配置的情况下部署在另一个地址/服务器上。不过,我会研究网站框架。谢谢你的提示。 - liminal
我认为它也会更直接,但这绝对是一个正确的答案。我遇到了同样的问题,终于找到了答案。谢谢亚历克斯 - anonymous coward