PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Browserlanguage via Apache setzen



bigblue2010
13.09.12, 17:36
Hallo Zusammen,

auf meiner Homepage habe ich zwei Sprachen eingestellt, deutsch und englisch. Über RewriteRules habe ich den Apache so eingerichtet, dass er erkennt, mit welcher Sprache der Browser die seite öffnet. Wie man den Rules unten entnehmen kann, sind die Rules so eingerichtet, dass erkannt wird mit welcher Browserlanguage aktiviert ist und deutsche Browser nach "/de/" umleitet und alle anderen Sprachen auf "/" und somit auf die englische Sprache.

Auf der Homepage hat man die Möglichkeit die Sprache zu ändern, in dem man diese in einem Pulldown-Menü auswählt. Jetzt zum Problem wenn, ich die Seite mit einem deutschsprachigen Browser aufrufe und aber auf die englische Sprache wechseln möchte, klappt das nicht. Das liegt natürlich daran, dass die Rewriterules greifen und mich wieder auf "/de" weiterleiten.

Hab ihr mir ein Tipp wie ich das Problem über Apache lösen könnte? Mir fällt einfach kein Lösungsweg ein :(



RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

#The 'Accept-Language' header starts with 'de'
#and the test is case-insensitive ([NC])
RewriteCond %{HTTP:Accept-Language} ^de [NC]
#Redirect user to /de/ address
#sending 301 (Moved Permanently) HTTP status code
RewriteRule ^$ /de/ [L,R=301]


Danke & Gruß
Marcus

TheDarkRose
13.09.12, 18:12
Die Browserlanguage lieber in deiner Webapplikation auslesen und dort die Weiterleitung behandeln.

bigblue2010
13.09.12, 21:52
Danke für deine Antwort. Sowas habe ich mir schon gedacht. Aber würde das in meinem Fall, überhaupt eine Möglichkeit geben das über Apache zu lösen, mich interssiert das aus dem Technischen aspekt.

marce
14.09.12, 05:58
Würde vermutlich nur gehen, indem Du entweder
* einen zusätzlichen Header setzt und den immer mitschleifst
* oder indem die englische Version in /en liegt - dann kannst Du von / auf /de umleiten, wenn Sprache de und nach /en sonst - und wenn jemand die Sprache wechselt schlägt die Sprachweiche für nur / nicht mehr zu, da ja schon in /de oder /en drin...