Wie leite ich domain.com auf WWW.domain.com unter Django um?

8

Wie gehe ich vor, alle Anfragen für domain.com / ... auf www .domain.com / ... mit einem 301 in einer Django-Site umzuleiten?

Offensichtlich kann dies in urls.py nicht gemacht werden, weil Sie nur den Pfadteil der URL dorthin bekommen.

Ich kann das Mod-Rewrite nicht in .htaccess verwenden, weil .htaccess-Dateien unter Django nichts tun (glaube ich).

Ich vermute etwas in Middleware oder Apache conf?

Ich benutze Django auf einem Linux-Server mit Plesk und benutze mod WSGI

    
Jake 18.02.2010, 02:22
quelle

6 Antworten

18

Die WebFaction-Diskussion, auf die jemand hingewiesen hat, ist in Bezug auf die Konfiguration korrekt, Sie müssen sie nur selbst anwenden und nicht über ein Control Panel.

%Vor%

Fügen Sie die .htaccess-Datei oder die Haupt-Apache-Konfiguration in den entsprechenden Kontext ein. Wenn Sie sich in einem VirtualHost in der Apache-Hauptkonfiguration befinden, lautet Ihr Servername www.example.com und ServerAlias ​​ist example.com, um sicherzustellen, dass der virtuelle Host beide Anforderungen verarbeitet.

Wenn Sie keinen Zugriff auf eine Apache-Konfiguration haben, können Sie bei Bedarf einen WSGI-Wrapper um den Django WSGI-Anwendungspunkt verwenden. Etwas wie:

%Vor%

Dies zu beheben, um die URL in die Site aufzunehmen und mit https umzugehen, wird dem Leser als Übung überlassen. : -)

    
Graham Dumpleton 18.02.2010, 03:05
quelle
15

Die Einstellung PREPEND_WWW macht genau das.

    
Luper Rouch 18.02.2010 03:12
quelle
3

Es gibt einen besseren Weg, dies zu tun . Sie sollten nur Ihre Apache-Konfiguration zu Ihrem Standard-VirtualHost hinzufügen, das wird definiert als:

%Vor%

Und das wird den Job machen.

    
maciek 04.12.2015 15:06
quelle
0

Ein vollständiger Thread zum Thema existiert hier Ссылка

    
damirault 18.02.2010 02:28
quelle
0

Dies kann auch mit einer Middleware erfolgen.

Einige Beispiele:

Dies ist eine bessere Version von Snippet-510:

%Vor%     
Taha Jahangir 19.04.2015 13:44
quelle
0

Ich habe Grahams Lösung ausprobiert, kann sie aber nicht zum Laufen bringen (selbst im einfachsten Fall von http (nicht https) ohne Pfad. Ich habe keine Erfahrung mit wsgi, da du wahrscheinlich erraten kannst und jede Hilfe tief ist geschätzt.

Hier ist mein Versuch (Umleitung von www.olddomain.com auf www.newdomain.com). Wenn ich versuche, es zu implementieren, führt der Versuch, www.olddomain.com zu erreichen, zu einem Fehler ("Diese Seite kann nicht erreicht werden"):

%Vor%

Danke für Ihre Hilfe

    
ptav 12.06.2016 20:46
quelle