12 Stimmen

Django Apache Redirect Problem

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

Meine Apache-Conf sieht etwa 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, auf das ich stoße, ist, dass eine Anfrage nach /cflow/somepage.html auf /accounts/login?next=/cflow/somepage.html umgeleitet wird, wenn der Benutzer nicht eingeloggt ist. Diese neue Adresse ist nicht unterhalb des django Root (cflow), so Apache antwortet mit einem 404 Not Found.

Meine Frage ist, wie kann ich die Django-Weiterleitungen zugeordnet haben, um unterhalb der Anwendungen Root-Verzeichnis auf Apache sein? D.h. wie kann ich die Seite /accounts/... stattdessen /cflow/accounts/... sein lassen?

Danke für jede Hilfe.

15voto

alex vasi Punkte 5114

Dinge zum Probieren:

  1. Ändern Sie die aktuelle Domäne in "yourdomain.tld/cflow" in der "Rahmenwerk "Standorte . Es ist einfach zu tun mit django admin oder dumpdata/loaddata manage.py Befehle.

  2. Sieht so aus, als ob Ihre Website Folgendes verwendet login_erforderlich Dekorateur. In diesem besonderen Fall können Sie zu einstellungen.py :

    LOGIN_URL = '/cflow/konten/anmeldung/'

3 Stimmen

Danke! Ich hatte auf eine Lösung gehofft, die für die Django-App transparent ist. Ich möchte in der Lage sein, die Website auf einer Adresse/Server zu testen und auf einem anderen ohne zusätzliche Konfiguration bereitzustellen. Ich werde mir das Sites-Framework trotzdem ansehen. Vielen Dank für den Tipp.

1 Stimmen

Ich dachte auch, dass es einfacher wäre, aber das ist definitiv eine richtige Antwort. Ich hatte das gleiche Problem und habe schließlich diese Antwort gefunden. Vielen Dank, Alex!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X