mod_rewrite: Umleitung je nach Browser-Sprache
Richard[unregistriert]
- webserver
Hallo,
ich stehe vor dem Problem, dass ich meine Webseiten-Besucher je nach eingestellter Browsersprache umleiten will, um ihnen die vermeintlich richtige Sprachversion anzubieten. Der Besucher soll trotzdem selbst entscheiden können welche Sprache er haben möchte (über Links auf der Seite selbst) und kann ggf. nach fehlerhafter Weiterleitung auf die andere Sprachversion umstellen. Also das, was Apache mit den Multiviews (mod_negotiation) unterstützt.
Mein Problem ist jetzt, dass Apache die entsprechende Sprachversion nur ausliefert, wenn Apache im aktuellen Verzeichnis die entsprechende Sprachversion (ermittelt über den Dateinamen) vorfindet.
Beispiel:
Auf Server vorhanden: foo.de.html und foo.en.html
User ruft foo.html auf, Accept-Language vom Browser: de-de -> foo.de.html wird ausgeleifert, der User kann trotzdem über gewusstes aufrufen von foo.en.html die Englische Seite aufrufen.
Ich habe nun aber nicht alle Dateien mit der entsprechenden Namenskonvention vorliegen, sondern ich habe die Seiten in zwei getrennten Ordner vorliegen. Ich müsste daher sämtliche Dateinamen und relativen Links in den Seiten anpassen. Das ist recht aufwendig, daher dachte ich, dass ich einfach per mod_rewrite auf die passende Seite/Verzeiuchnis umleite.
Der User ruft www.xyz.de auf und soll per mod_rewrite nun auf www.xyz.de/de/ weitegeleitet werden, wenn die Accept-Language vom Browser deutsch ist und auf www.xyz.de/en/, wenn die Accept-Language englisch ist.
Ich will also bewusst Multiviews umschiffen.
Dies hat den Hintergrund, dass die Seiten eben in unterschieldichen Verzeichnissen liegen und der User bisher beim Betreten der Seite seine Sprache selbst per Hand auswählen musste und dann entsprechend in das richtige Verzeichnis weitergeleitet wurde.
Dies möchte ich nun automatisieren.
Leider weiss ich nicht wie, da ich mich mit mod_rewrite nicht auskenne und per Google nur User gefunden habe, die das selbe Problem haben wie ich, und deren Lösungen ebenfalls nicht funktionieren.
Eventuell hat jemand von Euch die automatische Sprachwahl genauso realisiert und kann mir seine rewrite rules als Vorlagen zeigen.
Das wäre sehr nett und würde mir sehr weiterhelfen.
Gruß
Richard
hi,
Mein Problem ist jetzt, dass Apache die entsprechende Sprachversion nur ausliefert, wenn Apache im aktuellen Verzeichnis die entsprechende Sprachversion (ermittelt über den Dateinamen) vorfindet.
Wieso ist das ein Problem? Wenn das so geht, isses doch ok.
Hotti
Moin!
RewriteCond %{HTTP:Accept-Language} ^.*(de|es|fr|it|ja|ru|en).*$ [NC]
Die gefundene Sprache wird in %1 gespeichert.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Moin!
RewriteCond %{HTTP:Accept-Language} ^.*(de|es|fr|it|ja|ru|en).*$ [NC]
Die gefundene Sprache wird in %1 gespeichert.
Hab auch noch ne Variante: Eine Rewrite_Rule für alle Seiten. Keine Condition, keine Parameter, keine Flags, keine Umleitung. Nur eine Voraussetzung muss gegeben sein: Die Seiten werden per extra Serverprozess ausgeliefert, der Prozess fragt lediglich HTTP_ACCEPT_LANGUAGE ab und baut dann die entsprechende Seite zusammen.
Schöne Grüße,
Horst Kassler
Moin!
Hab auch noch ne Variante: Eine Rewrite_Rule für alle Seiten. Keine Condition, keine Parameter, keine Flags, keine Umleitung. Nur eine Voraussetzung muss gegeben sein: Die Seiten werden per extra Serverprozess ausgeliefert, der Prozess fragt lediglich HTTP_ACCEPT_LANGUAGE ab und baut dann die entsprechende Seite zusammen.
Das geht dann aber auch mit "Keine Rewrite_Rule für alle Seiten". Mit PHP oder Perl einfach zu stricken.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Moin,
Das geht dann aber auch mit "Keine Rewrite_Rule für alle Seiten". Mit PHP oder Perl einfach zu stricken.
Ja, Freilich :-)
So wie ich das hier im Forum bisher mitbekommen habe, wird die Rewrite Engine hauptsächlich von denen gebraucht, die meinen, damit eine verpfuschte Projektverwaltung wieder gerade biegen zu können.
Horst von der Weser
Hi,
So wie ich das hier im Forum bisher mitbekommen habe, wird die Rewrite Engine hauptsächlich von denen gebraucht, die meinen, damit eine verpfuschte Projektverwaltung wieder gerade biegen zu können.
So ein Quatsch. Du überraschst mal wieder - nicht.
MfG ChrisB
Hi,
So wie ich das hier im Forum bisher mitbekommen habe, wird die Rewrite Engine hauptsächlich von denen gebraucht, die meinen, damit eine verpfuschte Projektverwaltung wieder gerade biegen zu können.
So ein Quatsch. Du überraschst mal wieder - nicht.
Aber Du mich. Erst fragst Du nach ner Alternative zu XML und dann guggst du nicht einmal auf meine Seite. Entweder hast Du alles verstanden, was da steht oder es interessiert Dich gar nicht. Also was nun?
Hottü
Hi,
Aber Du mich. Erst fragst Du nach ner Alternative zu XML und dann guggst du nicht einmal auf meine Seite. Entweder hast Du alles verstanden, was da steht oder es interessiert Dich gar nicht. Also was nun?
Abgesehen davon, dass das ein ganz anderes Thema war - nein, ich habe jetzt aktuell nicht auf deine Seite geschaut, weil ich mir vorstellen kann, auf welchem Niveau sich die dortigen Ausführungen befinden. Das hatten wir schon öfter, dass du hier einen deiner Artikel vorgestellt hast, und daran ziemlich breite fachliche Kritik geäußert wurde, was bei dir aber zu keinerlei Einsicht führte.
Wenn du also einen deiner Artikel zu einem bestimmten Thema hier (erneut) fachlich diskutieren und kritisieren lassen willst, dann mach' von mir aus einen eigenen Thread dafür auf.
Aber trage diese Artikel bitte nicht hier im Forum als Schild vor dir her, mit dem du jede fachliche Kritik/Rückfrage gleich abbügeln kannst. Dass sie dazu nicht genug Substanz besitzen, teilweise sogar eklatante (Denk-)Fehler enthalten, haben nämlich schon die vergangenen Diskussionen dazu zumindest mir persönlich schon deutlich genug gezeigt.
MfG ChrisB