2009-03-18 16 views
2

Ich habe eine einfache Website in Django gemacht. Die URLs, die ich verwende, sind http ::/www.example.com/nl/ und http://www.example.com/fr/.Umleiten einer http-Anfrage mit Apache/Django

Meine Django urls.py hat die folgende Zeile:

(r '^ (PNL | fr) /?', 'Example.views.index'),

In example.views.index Ich überprüfe den Sprachparameter. Wenn es "nl" ist, zeige ich eine Vorlage an. Wenn es "fr" ist, zeige ich eine andere Vorlage.

Das hat super funktioniert. Jetzt ist der Kunde zwei verschiedene URLs:

http://www.dutch.com/ und http://www.french.com/

Und schließlich werde ich die Frage stellen:

Gibt es eine Möglichkeit für mich, die neuen URLs zu verwenden, ohne meinen django Code zu ändern? Ich nehme an, ich kann Apache sagen, die http://www.example.com/nl/ Seite zu präsentieren, wenn der Benutzer zu http://www.dutch.com/ geht. Aber wie mache ich das? Und wird Django immer noch in der Lage sein, den 'Sprache' Parameter von der URL zu bekommen?

Vielen Dank im Voraus für alle Antworten.

+0

Es ist wichtig zu beachten, dass es nicht möglich ist, http://www.dutch.com/nl/ aufzurufen. –

+0

Also, was willst du alles von http://www.dutch.com zu http://www.example.com/nl/ umleiten? – andi

+0

Das ist genau das, was ich will, Andi. Es ist auch wichtig, dass ich immer noch Zugang zum "nl" in Django habe. –

Antwort

2

Wenn Sie .htaccess-Dateien auf http://www.dutch.com verwenden können, die Sie Apache Redirect Direktive wie so

redirectMatch 301 ^(.*)$ http://www.example.com/nl/ 

Dies umleiten können alle Anfragen zu dutch.com gesendet example.com/nl

Sie könnten auch

redirect 301 /index.html http://www.example.com/nl/ 

verwenden Dies wird Umleitung nur „index.html“ auf dutch.com example.com/nl/ (nicht e dass der erste Parameter ein Pfad ist und keine URL sein kann - no http://www)

+0

Das klingt, es könnte sein, was ich brauche. Was sieht der Nutzer jedoch? Ändert sich die Browser-URL zu www.example.com/nl oder bleibt sie auf dutch.com? –

+0

Wenn die Seite index.html einen Link zu '../fr/index.html' hat, was passiert dann, wenn ich darauf klicke? Wird es zu example.com/fr/index.html gehen oder wird es einen Fehler geben, da ich einen Ordner auf dutch.com nicht gehen kann? –

+0

Ja, die URL ändert sich zu example.com/nl, also sollte die zweite Sache kein Problem sein. Der Benutzer merkt möglicherweise nicht einmal, wenn er die URL nicht anschaut. Das zweite Problem passiert nicht. – andi