htaccess - Sprachsteuerung

Gesperrt
sarronsarron
Beiträge: 251
Registriert: Do 10. Mär 2011, 17:02
Wohnort: Erlangen
Kontaktdaten:

htaccess - Sprachsteuerung

Beitrag von sarronsarron » Di 29. Apr 2014, 08:48

Hallo,

für eine htaccess Abfrage benötige ich eure Hilfe. Eine Domain soll je Spracheinstellung geroutet werden.

Domain ist immer die gleiche www.domain.de

Wenn jemand die Domain aus Deutschland aufruft soll auf www.domain.de/de verweisen werden
Wenn jemand die Domain aus England aufruft soll auf www.domain.de/en verweisen werden
Wenn jemand die Domain aus Frankreich aufruft soll auf www.domain.de/fr verweisen werden

wenn jemand aber eine Seite z.B. www.domain.de/news/artikel1.html gebookmarkt hat soll immer diese Seite aufgerufen werden, egal in welchem Land der User sitzt.

Ist das per htaccess möglich?

Gruß sarronsarron

xmurrix
Beiträge: 3147
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: htaccess - Sprachsteuerung

Beitrag von xmurrix » Di 29. Apr 2014, 12:11

Hallo sarronsarron,

es gibt für den Apache-Webserver mod_geoip, damit sollte es möglich sein.

Vermute mal dass das aber Performancelastig sein kann, es sollte vielleicht nicht bei jedem Request verwendet werden.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Zuschauer
Beiträge: 141
Registriert: Do 5. Dez 2013, 08:57
Kontaktdaten:

Re: htaccess - Sprachsteuerung

Beitrag von Zuschauer » Di 29. Apr 2014, 12:59

Das ist einfach :)
Pro Sprache braucht es 3 Zeilen (bis auf die Standardsprache die für alle nicht-gefundenen geladen werden soll, da braucht es nur 2):

Code: Alles auswählen

# Redirect to the appropriate speach if none is in the URL
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteRule ^(.*) http://www.domain.de/en/$1 [R,L]

RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*) http://www.domain.de/de/$1 [R,L]
Die drei Zeilen in Klartext:
  • Wenn nichts hinter der Domain steht
  • Wenn die Browsersprache anfängt mit ..
  • Dann route hierhin, zeige es im Browser (R) und verlasse die .htaccess (L)
Bei R kann man noch einen Statuscode angeben (R=302), 302 ist standard (302 = temporary redirect, 301 = permanent redirect).

Gruß
Zuschauer

sarronsarron
Beiträge: 251
Registriert: Do 10. Mär 2011, 17:02
Wohnort: Erlangen
Kontaktdaten:

Re: htaccess - Sprachsteuerung

Beitrag von sarronsarron » Di 29. Apr 2014, 13:24

Danke,

werde es morgen gleich ausprobieren.

Gruß sarronsarron

Zuschauer
Beiträge: 141
Registriert: Do 5. Dez 2013, 08:57
Kontaktdaten:

Re: htaccess - Sprachsteuerung

Beitrag von Zuschauer » Di 29. Apr 2014, 15:27

In Firefox kannst du zum Testen die Liste der Sprachen ändern (Reihenfolge reicht schon): Einstellungen - Inhalt - Sprachen - [Wählen]

Gruß
Zuschauer

Gesperrt