Sprachsteuerung mit mod_rewrite

  • Hallo liebe Forengemeinde,

    ich möchte eine Sprachsteuerung für meine Seite einrichten.
    Beispiel:
    http://www.test.nl soll auf http://www.testdomain.de/nl umleiten.

    Dafür habe ich in meine .htaccess folgendes geschrieben:

    Alle anderen Domains (z.B. testdomain.at) sollen auf testdomain.de umleiten, was auch funktioniert.

    Die Domains testdomain.de, testdomain.fr, testdomain.nl und testdomain.eu gehören mir selbstverständlich.

    Das ganze funktioniert auch soweit, auch wenn ich das mit den RewriteRules nicht ganz verstanden habe.
    Allerdings funktioniert das ganze beim aller ersten Einstieg nicht.

    War ein Benutzer noch nie auf der Seite und versucht testdomain.nl aufzurufen, wird er auf testdomain.de umgeleitet. Gibt man danach nochmal die Adresse testdomain.nl ein, funktioniert die Weiterleitung korrekt auf testdomain.de/nl.

    Könnte das eventuell nicht am mod_rewrite, sondern an meiner vHost Datei liegen?
    Hier ein Auszug:

    Code
    <VirtualHost *:80>
            ServerAdmin webmaster@localhost
            ServerName testdomain.de
            ServerAlias www.testdomain.de
            ServerAlias www.testdomain.at testdomain.at
            ServerAlias www.testdomain.nl testdomain.nl
            ServerAlias www.testdomain.eu testdomain.eu
            ServerAlias www.testdomain.fr testdomain.fr
    [...]


    Danke schon vorab für die Hilfe und einen wunderschönen Tag euch allen.
    Gruß himself85

    Einmal editiert, zuletzt von himself85 (4. Juli 2013 um 11:42)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Was ist eine Sprachsteuerung ;-)?

    Löse das mal generell mit vhost, keine .htaccess.

  • Siehst du in der vhost Konfiguration verschiedene Pfade? Du kannst auch in den vhost entsprechende Redirect einrichten, ist evtl. noch sinnvoller. Versuche es doch erst einmal, dir eine entsprechend vhost einzurichten. Lösungen per .htaccess sollten immer die 2.Wahl sein.

  • Wenn ich das richtig verstanden habe, will himself85 ja einen echten Redirect 301 auf die Unterverzeichnisse haben. So machen das ja teilweise auch große Firmen.

    Beim Aufruf einer Länderdomain wird per 301 auf das Länderverzeichnis der Hauptdomain (meist .com) weitergeleitet.

    Bsp.: Apple
    http://www.apple.nl ---301---> http://www.apple.com/nl/
    http://www.apple.fr ---301---> http://www.apple.com/fr/

    Ich sehe nicht, wie man das per CNAME im DNS hinbekommt.

    Mal davon abgesehen, ob das nun per .htaccess besonders effektiv ist oder nicht, sollte es technisch gesehen funktionieren.

    Ich habe das mal auf meinem lokalen Testserver nachgebaut und es funktioniert zumindest in meiner Testumgebung so wie erwartet. Wichtig ist, daß die Regeln vor allen anderen Regeln in der .htaccess-Datei stehen.

    Nachteil der .htaccess-Variante ist natürlich, das die Regeln immer durchlaufen werden müssen, auch wenn eigentlich schon alles paßt. Insofern wäre jeweils ein vhost pro Länderdomain mit der entsprechenden Weiterleitung dann direkt dort effizienter.

    Um wirklich zu sehen, was passiert, wäre natürlich eine konkrete URL hilfreich.


    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

  • Wie soll das mit CNAME funktionieren? Da brauche ich doch eine Subdomain nl.testdomain.de nicht testdomain.de/nl, oder?

    Allerdings bin ich der Lösung schon sehr nahe, ich habe das jetzt mal mit dem 301 versucht:

    Code
    <VirtualHost *:80>
        ServerName testdomain.nl
        ServerAlias www.testdomain.nl
        Redirect / http://www.testdomain.de/nl
    </VirtualHost>

    Funktioniert genauso wie auch die .htaccess Datei, jedoch erst beim 2. Aufruf, vorher wird aus testdomain.nl immer testdomain.de.
    Wenn ich allerdings meine .htaccess Datei lösche, funktioniert das ganze (auch beim 1. Aufruf), nur bekomme ich keinen Inhalt mehr angezeigt.

    Schuld ist folgender Codeblock in der .htaccess Datei, sobald der fehlt, funktioniert es beim 1. Aufruf, aber es gibt keinen Inhalt mehr:

    Leider werde ich nicht ganz schlau daraus, warum das erst nach dem 2. Aufruf funktioniert.

    Danke für eure Hilfe.

  • Du mußt Dich entscheiden, ob das Ziel immer mit oder ohne www angesprochen werden soll. Ansonsten macht dann Wordpress selbst auch nochmal ein Redirect.

    Was ist denn in Wordpress bei den Optionen "Wordpress-Adresse" und "Seiten-URL" eingetragen? Genau dahin sollten auch die anderen Redirects für die Länderdomains weiterleiten.

    Bei der .htaccess-Variante ist es außerdem wichtig, daß diese vor den Wordpress-Regeln stehen.

    Die Wordpress-Regeln müssen natürlich drin bleiben, sonst funktionieren die Permalinks nicht.

    Wie sind denn die Sprachversionen umgesetzt? Per Wordpress-Plugin? Vielleicht gibt es auch da noch ein Problem mit der Weiterleitung und Cookies.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!