这是我到目前为止所拥有的:
#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
而且,它依赖于写在删除斜杠位上的域。
所以......两个问题。
如何重写“删除尾部斜杠”位上的规则以排除在其上写入域?
如何在“强制 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
谢谢!