Проблема с перенаправлением Django Apache

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

Мой 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 (cflow), поэтому apache отвечает 404 Not Found.

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

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


person liminal    schedule 24.06.2009    source источник


Ответы (1)


Что стоит попробовать:

  1. Измените текущий домен на yourdomain.tld / cflow в структуре "sites". Это легко сделать с помощью команд django admin или dumpdata / loaddata manage.py.

  2. Похоже, ваш сайт использует login_required декоратор. В этом конкретном случае вы можете добавить в settings.py :

    LOGIN_URL = '/ cflow / accounts / login /'

person alex vasi    schedule 24.06.2009
comment
Спасибо. Я надеялся на решение, прозрачное для приложения Django. Я хотел бы иметь возможность протестировать сайт на одном адресе / сервере и развернуть его на другом без дополнительной настройки. Я все же посмотрю на структуру сайтов. Спасибо за совет. - person liminal; 25.06.2009
comment
Я тоже думал, что это будет проще, но это определенно правильный ответ. У меня была такая же проблема, и я наконец нашел этот ответ. Спасибо, Алекс! - person anonymous coward; 23.09.2009