Hi,
RewriteCond %{HTTP_HOST} [1](.+)$ [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
>
> Ich weiß, ich muss mich noch mehr mit RegEx auseinandersetzen. Aber kannst Du mir erklären, wo der Fehler ist? In diesem Fall wird aus http://example.org http://www.xample.org. Das erste Zeichen der Domain wird also "verschluckt".
Die eckigen Klammern definieren eine Zeichenklasse.
Du verlangst also mit deinem Ausdruck, dass der HTTP\_HOST mit einem Zeichen beginnen soll, dass keine (, kein w, kein w, kein w, kein \, kein Punkt und keine ) sein soll. (Die Sonderbedeutung der meisten Sonderzeichen, wie bspw. des Punktes, ist innerhalb einer Zeichenklasse aufgehoben - deshalb ist der \ dort m.W. auch kein maskierendes Zeichen.)
Nun, example.com erfüllt das - das e ist ein Zeichen, dass nicht in dieser Zeichenklasse liegt. Und der nach diesem Zeichen folgende Rest ist xample.com - der wird jetzt von (.+) gematcht, und wegen der Klammerung als %1 zurückgeliefert.
MfG ChrisB
--
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
^(www.) ↩︎