这是我目前的进展:
#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
而且,它取决于去除尾部斜线位上写的域名。
所以……有两个问题。
如何重写“去除尾部斜线”位上的规则,以排除在其上写入域名?
如何创建一个rewritecond来排除子域,而无需明确写下它们,在“强制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
谢谢!