mod_rewrite und Umlautdomains
sprain
- webserver
Hallo zusammen!
Ich kriege meine Umlautdomains mit mod_rewrite nicht umgleitet. Hat jemand einen Input, wie ich das schaffe?
Ausgangslage:
www.école.com/anything soll auf www.ecole.com/anything umleiten.
Versuch 1:
RewriteCond %{HTTP_HOST} ^www.école.com$ [NC]
RewriteRule ^(.*) http://www.école.com/$1 [L,R=301]
Versuch 2
RewriteCond %{HTTP_HOST} ^www.xn--cole-9oa.com$ [NC]
RewriteRule ^(.*) http://www.école.com/$1 [L,R=301]
Beide Varianten funktionieren leider nicht.
Bin dankbar für jeden Tipp!
Gruss, sprain
Hellihello
du hast im rewriterule als ziel ja nach wie vor den accent.
RewriteRule ^(.*) http://www.école.com/$1 [L,R=301]
^^^
Dank und Gruß,
Peinlich, aber das war natürlich ein Schreibfehler im Forum...
Ich hab diesen Stand, der trotdzem nicht funktioniert:
Versuch 1:
RewriteCond %{HTTP_HOST} ^www.école.com$ [NC]
RewriteRule ^(.*) http://www.ecole.com/$1 [L,R=301]
Versuch 2
RewriteCond %{HTTP_HOST} ^www.xn--cole-9oa.com$ [NC]
RewriteRule ^(.*) http://www.ecole.com/$1 [L,R=301]
Any ideas?
Danke! sprain
Hellihello
RewriteCond %{HTTP_HOST} ^www.école.com$ [NC]
RewriteRule ^(.*) http://www.ecole.com/$1 [L,R=301]
Versuch 2
RewriteCond %{HTTP_HOST} ^www.xn--cole-9oa.com$ [NC]
RewriteRule ^(.*) http://www.ecole.com/$1 [L,R=301]Any ideas?
Jau, erstmal alles weglassen, was du für den ersen schritt nicht brauchst.
Was gibt
RewriteRule .* http://www.ecole.com [L]
?
Dank und Gruß,
Ausgangslage:
www.école.com/anything soll auf www.ecole.com/anything umleiten.
Versuch 1:
RewriteCond %{HTTP_HOST} ^www.école.com$ [NC]
RewriteRule ^(.*) http://www.école.com/$1 [L,R=301]
entspricht nicht dem geforderten
Versuch 2
RewriteCond %{HTTP_HOST} ^www.xn--cole-9oa.com$ [NC]
RewriteRule ^(.*) http://www.école.com/$1 [L,R=301]
das auch nicht
ob du punycode verwenden oder nicht verwenden musst, weiss ich auch nicht - aber beide würden eine endlosschleife produzieren
Ausgangslage:
www.école.com/anything soll auf www.ecole.com/anything umleiten.Versuch 1:
RewriteCond %{HTTP_HOST} ^www.école.com$ [NC]
RewriteRule ^(.*) http://www.école.com/$1 [L,R=301]
entspricht nicht dem gefordertenVersuch 2
RewriteCond %{HTTP_HOST} ^www.xn--cole-9oa.com$ [NC]
RewriteRule ^(.*) http://www.école.com/$1 [L,R=301]
das auch nichtob du punycode verwenden oder nicht verwenden musst, weiss ich auch nicht
Das Erste (also www.xn--cole-9oa.com), denn etwas anderes kommt serverseitig ja nicht an. Der Host-Header ist doch immer www.xn--cole-9oa.com, die Umwandlung findet clientseitig statt.
- aber beide würden eine endlosschleife produzieren
Richtig, und aus diesem Grund funktioniert das Vorhaben nicht. Hinzu kommt noch, dass Browser auch gleich noch die Domain in der Browser-Adresszeile ändern.
Da vielen ein solches „Domain-Layout“ dann doch missfällt, leiten die IDN bzw. deren ASCII Compatible Encoding (ACE) dann doch oft auf „normale“ ASCII-Domains um...
Jetzt steht im OP aber
www.école.com/anything soll auf www.ecole.com/anything
Also IDN --> ASCII. Das spiegelt sich aber nicht in den beigefügten Regeln wieder, denn dort wird in der Substitution immer école statt ecole notiert. Wohlmöglich wird
RewriteCond %{HTTP_HOST} xn--cole-9oa.com [NC]
RewriteRule ^(.*) http://www.ecole.com/$1 [L,R=301]
gesucht? Browser fordern kein 3rd-level "www" an, natürlich kann das jemand manuell eingben, drum sollte die regEx nach links offen sein. Nach der Toplevel-Domain (com) kann noch ein Punkt oder/und :Port folgen, drum sollte sie i.d.R. auch nach rechts offen sein.
gesucht? Browser fordern kein 3rd-level "www" an, natürlich kann das jemand manuell eingben, drum sollte die regEx nach links offen sein. Nach der Toplevel-Domain (com) kann noch ein Punkt oder/und :Port folgen, drum sollte sie i.d.R. auch nach rechts offen sein.
nach links offen sein ist ggf nicht sehr schlau, wenn man nur www oder nicht www einschließen möchte
^(www.)? ist davor ggf das mittel der wahl
nach rechts offen halten ist wahrscheinlich weniger unpraktisch, da es sehr unwahrscheinlich ist, dass eine ähnlich lautende domain mit anderem ende drauf zeigt
wer hatt denn schon example.com bzw example.com. und example.com.at registiert? und auf den selben vhost zeigen - kommt äusserst selten vor
dennoch lässt sich auch dies mit einer erweiterung des regulären ausdrucks begrenzen
.?$
wenn ich jetzt nicht falsch liege, sollte da dann so aussehen:
^(www.)?example.com.?$
ein unvollständiger ausdruck (mit offen lassen oder ein nicht escapter punkt) könnte so schnell auch fehler verursachen - zwar ist es höchstens unwahrscheinlich, ist mir aber schon mal passiert - subdomain.example.com statt subdomain.example.com matchte in meinem fall zufällig auf die domain subdomain-example.com des selben kunden, die subdomain sollte aber auf einen anderen inhalt verweisen wie die domain mit ähnlichem namen
dennoch lässt sich auch dies mit einer erweiterung des regulären ausdrucks begrenzen
.?$
Ja, ggf. noch mit Port falls gewünscht, .?(:[0-9]+)?$ bzw. .?(:80)?$
Zugegeben, dass jemand example.com. oder example.com.:80 oder example.com:80 statt example.com anfordert, was im Ergebnis ja alles das gleiche ist, dürfte recht selten sein.
wenn ich jetzt nicht falsch liege, sollte da dann so aussehen:
^(www.)?example.com.?$
Jap.
ein unvollständiger ausdruck (mit offen lassen oder ein nicht escapter punkt) könnte so schnell auch fehler verursachen - zwar ist es höchstens unwahrscheinlich
Ja, das kann natürlich nur der Verwender beurteilen, ob es zu Konflikten kommt. Der Punkt muss escaped werden, um ein Punkt zu sein, das ist klar. Da habe ich schon öfters Fälle in Foren gesehen, wo das Unterlassen des Escapen zu unerwünschten Ergebnissen geführt hatte. :-)
Ja, das kann natürlich nur der Verwender beurteilen, ob es zu Konflikten kommt. Der Punkt muss escaped werden, um ein Punkt zu sein, das ist klar. Da habe ich schon öfters Fälle in Foren gesehen, wo das Unterlassen des Escapen zu unerwünschten Ergebnissen geführt hatte. :-)
nach sicher . und . entsprechend eben beide einem punkt - nur leider ohne escaping halt auch ganz anderen zeichen :D