2009-06-24 18 views
11

Ich konfiguriere mein Django-Projekt auf Apache mit mod_wsgi laufen. Ich versuche, Django unterhalb des Verzeichnisses 'cflow' auf Apache auszuführen, aber ich habe Probleme mit Redirects.Django Apache Redirect Problem

Meine Apache conf sieht ungefähr so ​​aus:

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

Das Problem, das ich in laufende bin ist, dass, wenn der Benutzer nicht angemeldet ist, wird eine Anfrage für /cflow/somepage.html zu/reidrected werden Konten/Login? next =/cflow/somepage.html. Diese neue Adresse liegt nicht unterhalb des Django-Stammverzeichnisses (cflow), daher antwortet apache mit 404 Not Found.

Meine Frage ist, wie kann ich die Django-Weiterleitungen zugeordnet werden, um unterhalb der Anwendungen Stammverzeichnis auf Apache zu sein? I.e. Wie kann ich die/accounts/...-Seite anstelle von/cflow/accounts/... setzen?

Danke für jede Hilfe.

Antwort

15

Dinge versuchen:

  1. aktuelle Domäne ändern zu "yourdomain.tld/cflow" im "sites" framework. Mit den Befehlen django admin oder dumpdata/loaddata manage.py ist das ganz einfach.

  2. Sieht aus wie Ihre Website login_required Dekorateur verwendet.

    LOGIN_URL = '/ cflow/accounts/login /'

+3

Dank: In diesem speziellen Fall können Sie settings.py hinzufügen. Ich habe auf eine Lösung für die Django-App gehofft. Ich würde gerne in der Lage sein, die Site auf einer Adresse/Server zu testen und auf einer anderen ohne zusätzliche Konfiguration zu implementieren. Ich werde jedoch in das Seiten-Framework schauen. Danke für den Tipp. – liminal

+1

Ich dachte, es wäre auch einfacher, aber das ist definitiv eine richtige Antwort. Ich hatte das gleiche Problem und fand schließlich diese Antwort. Danke Alex! –