maico: multilanguage Seite

Hallo,
ich versuche verzweifelt eine gute Lösung für eine multilanguage Seite (deutsch / englisch) zu finden.

Ich habe in meinem htdocs-Verzeichnis zwei Ordner ("de" und "en") mit weiteren Unterordner.

Ich möchte nun folgendes machen:
Wenn jemand auf der Seite kommt überprüft der Apache-Server die Sprache seines Browsers und er wird entsprechend weitergeleitet (Defaultsprache: Englisch).

z.B: "www.beispiel.net" wird weitergeletet nach "www.beispiel.net/en/" oder nach "www.beispiel.net/de/"

wenn er aber im Browser z.B. "www.beispiel.net/unterordner" eingibt wird er wieder je nach Sprache seines Browsers nach "www.beispiel.net/en/unterordner" oder nach "www.beispiel.net/de/unterordner" weitergeleitet.

Ich hatte gedacht ich könnte das in der .htaccess Datei per mod_rewrite irgendwie machen. Aber es klappt nicht.

Kann mir jemand bitte helfen? Vielen Dank
Ich hoffe ich habe mich verständlich ausgedrückt. ;-)

  1. Hallo!

    [...]

    Du kannst über %{HTTP:Header} auf Header zugreifen, die der Client sendet.

    // englisch
    RewriteCond %{HTTP:Accept-Language} ^en.*$
    RewriteRule ^(.*)$ /en/$1 [R,L]

    // Alles andere außer en*
    RewriteRule ^(.*)$ /de/$1 [R,L]

    Ich habe das nicht getestet!

    André Laugks

    --
    Die Frau geht, die Hilti bleibt!
    1. Hallo André,

      RewriteRule ^(.*)$ /en/$1 [R,L]
      Ich habe das nicht getestet!

      Das merkt man ;) - So wird man nämlich auch von /en/foo auf /en/en/foo weitergeleitet, von dort auf /en/en/en/foo und so weiter, das gleiche respektive mit de.
      Da muss noch eine RewriteCond davor:
      RewriteCond %{REQUEST_URI} !^/(en|de)/

      Viele Grüße aus Freiburg,
      Marian

      --
      Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
      <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
      1. Hallo!

        Ich habe das nicht getestet!

        Das merkt man ;)

        Stimmt :-)! Das gibt eine kleine Endlosschleife bis der Client abbricht!

        André Laugks

        --
        Die Frau geht, die Hilti bleibt!
        1. Ja!!! Es funktioniert!!!!!
          DANKE!!!

          Nun werden aber die eingebundenen CSS nicht angezeigt. Die sind in einem Ordner auf der gleiche Ebene wie die "de" und "en" Ordner.

          Eine Idee?

          1. Problem gelöst.
            Ich habe in dem CSS Ordner eine .htaccess Datei mit Inhalt: 'RewriteEngine Off' erstellt.

            1. Hi maico,

              Problem gelöst.
              Ich habe in dem CSS Ordner eine .htaccess Datei mit Inhalt: 'RewriteEngine Off' erstellt.

              Alternativ

              RewriteCond %{REQUEST_URI} !^/(en|de)/

              zu einem

              RewriteCond %{REQUEST_URI} !^/(en|de|NameDesCSSOrdners)/

              ergänzen, wenn der css-Ordner wie gesagt auf gleicher Ebene mit en und de liegt.

              Viele Grüße aus Kanada,
                ~ Dennis.