Вопрос по redirect, apache – Проблема перенаправления Django Apache

12

Я настраиваю свой проект Django для запуска на Apache, используя mod_wsgi. Я пытаюсь запустить Django под каталогом "cflow" на apache, но у меня проблема с перенаправлениями.

Мой apache conf выглядит примерно так:

<code>...
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>
</code>

Проблема, с которой я сталкиваюсь, заключается в том, что, если пользователь не вошел в систему, запрос /cflow/somepage.html будет перенаправлен в /accounts/login?next=/cflow/somepage.html. Этот новый адрес находится не ниже корня django (cflow), поэтому apache отвечает сообщением 404 Not Found.

У меня вопрос, как я могу сделать так, чтобы перенаправления Django отображались ниже корневого каталога приложений на apache? То есть как я могу сделать страницу / account / ... вместо нее / cflow / accounts / ...?

Спасибо за любую помощь.

Ваш Ответ

1   ответ
15

Вещи, чтобы попробовать:

  1. Change current domain to "yourdomain.tld/cflow" in the "sites" framework. It's easy to do using django admin or dumpdata/loaddata manage.py commands.

  2. Looks like your site is using login_required decorator. In that particular case you can add to settings.py:

    LOGIN_URL = '/cflow/accounts/login/'

Благодарю. Я надеялся на решение, которое было бы прозрачным для приложения Django. Я хотел бы иметь возможность протестировать сайт на одном адресе / сервере и развернуть на другом без какой-либо дополнительной настройки. Впрочем, я посмотрю на структуру сайтов. Спасибо за чаевые. liminal
Я думал, что это будет более простым, но это, безусловно, правильный ответ. У меня возникла та же проблема, и я наконец нашел этот ответ. Спасибо, Алекс!

Похожие вопросы