これが私がこれまでに持っているものです:
#Force www.
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
#Remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} (.*)$
RewriteRule ^(.+)/$ http://www.domain.com/$1 [R=301,L]
ただし、これにより、次のリダイレクトを行うすべてのサブドメインが台無しになります。
sub.domain.com -> www.sub.domain.com
また、末尾のスラッシュの削除ビットに書き込まれたドメインに依存します。
それで... 2つの質問です。
「末尾のスラッシュを削除」ビットのルールを書き換えて、ドメインの書き込みを除外するにはどうすればよいですか?
サブドメインを明示的に書き留めずに、rewritecond を作成して「force www.」少し?
望ましい結果の例 -
sub.domain.com/something/ -> sub.domain.com/something
domain.com/something/ -> www.domain.com/something
www.domain.com/ -> www.domain.com
sub.domain.com -> sub.domain.com
ありがとう!