1

WebサイトでWWWを強制する必要があります。

だから私はこのhtaccesを使用しました:

#Redirect non-www to WWW
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

問題は、http: //subdomain.mydomain.comがhttp://www.subdomain.mydomain.com にリダイレクトされることです。

どうすれば修正できますか?

4

2 に答える 2

2

サブドメインでこれを回避するには、メインドメインのみに一致し、メインドメインには一致しない条件を使用します。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]
于 2013-03-09T22:53:23.440 に答える
1

メインドメインのみをリダイレクトする場合

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mydomain.com$
RewriteRule .* http://www.%{HTTP_HOST}/$0 [R,L]

有効にしてテストしないでください。詳細について301は、この回答を参照してください。.htaccess書き換えルールをデバッグするためのヒント。

于 2013-03-09T23:08:33.700 に答える