サブドメインでこれを回避するには、メインドメインのみに一致し、メインドメインには一致しない条件を使用します。www.
このバージョンは、非常に一般的に一致します。2つの部分があり、wwwで始まらないドメイン、最初のドメインが3つの部分に一致しないドメインwwwではありません。
RewriteEngine On
# Doesn't start with www
RewriteCond %{HTTP_HOST} !^www\. [NC]
# And does not also have a subdomain
RewriteCond %{HTTP_HOST} !^[a-z0-9_-]+\.[a-z0-9_-]+\.[a-z0-9_-]+$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
ただし、処理するドメインのセットが固定されている場合、これはより簡単です。で始まるかどうかを確認する代わりにwww
、ベアドメインと一致する場合にのみリダイレクトを実行します。( | )
必要な数のドメイン名をORグループに追加します。
RewriteEngine On
# Matching any of 3 domains without www, and no subdomain
RewriteCond %{HTTP_HOST} ^(domain1|domain2|domain3)\.com$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]