2009-06-24 3 views
11

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

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

... 
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 будет reidrected к/счета/Логин? следующая =/cflow/somepage.html. Этот новый адрес не находится ниже корня django (cflow), поэтому apache отвечает с помощью 404 Not Found.

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

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

ответ

15

вещи попробовать:

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

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

    LOGIN_URL = '/ cflow/счета/логин /'

+3

Спасибо. Я надеялся на решение, которое было прозрачным для приложения Django. Я хотел бы иметь возможность протестировать сайт на одном адресе/сервере и развернуть его без дополнительной настройки. Я рассмотрю структуру сайтов. Спасибо за совет. – liminal

+1

Я думал, что это будет более прямолинейно, но это, безусловно, правильный ответ. У меня была такая же проблема и, наконец, нашел этот ответ. Спасибо alex! –

Смежные вопросы