2009-06-24 13 views
11

Je configure mon projet Django pour qu'il s'exécute sur Apache en utilisant mod_wsgi. J'essaie de lancer Django sous le répertoire 'cflow' sur apache, mais je rencontre un problème avec les redirections.Problème de redirection Django Apache

Mon apache ressemble conf quelque chose comme ceci:

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

Le problème que je suis en cours d'exécution en est que si l'utilisateur n'est pas connecté, une demande de /cflow/somepage.html sera reidrected à/comptes/login? suivant =/cflow/somepage.html. Cette nouvelle adresse n'est pas en dessous de la racine django (cflow), donc Apache répond avec un 404 Not Found.

Ma question est comment puis-je faire correspondre les redirections Django au répertoire racine des applications sur Apache? C'est à dire. comment puis-je rendre la page/accounts/.../cflow/accounts/...?

Merci pour toute aide.

Répondre

15

choses à essayer:

  1. Change domaine actuel à "yourdomain.tld/cdébit" dans le "sites" framework. C'est facile à faire en utilisant les commandes django admin ou dumpdata/loaddata manage.py.

  2. Il semblerait que votre site utilise login_required decorator. Dans ce cas particulier, vous pouvez ajouter à settings.py:

    LOGIN_URL = '/ cflow/comptes/login /'

+3

Merci. J'espérais une solution transparente pour l'application Django. J'aimerais pouvoir tester le site sur une adresse/serveur et le déployer sur un autre sans configuration supplémentaire. Je vais regarder dans le cadre des sites, cependant. Merci pour le conseil. – liminal

+1

Je pensais que ce serait plus simple, mais c'est certainement une bonne réponse. J'ai eu le même problème et finalement trouvé cette réponse. Merci alex! –

Questions connexes