suit: mod_rewrite Umleitung von Nicht-www auf www

Beitrag lesen

Die eckigen Klammern definieren eine Zeichenklasse.

Eine Zeichenklasse ist auch nicht dafür geeignet - um bestimmte voran- oder nachgestellte Ausdrücke zu bedingen gibt es lookahead und lookbehind assertions. In dem Fall eine negative lookbehind assertion:

^(?<!www.)example.com$

Einem zu findenden example.com darf nicht www. vorangestellt sein - die assertions sind übrigens immer non-capturing.

Manchmal ist es aber einfach besser nicht alles in einzelne ausdrücke zu verpacken - eine zweite RewriteCond voranzustellen ist wesentlich einfacher zu lesen:

RewriteCond %{HTTP_HOST} !^www.
RewriteCond %{HTTP_HOST} ^(.+)$ [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]