如果有人能解释下面的htaccess代码的条件1和条件2之间的差异,我会非常感激。
条件1
RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
RewriteRule ^(.*)$ https://domain.com/$1 [L,R=301]
条件2
RewriteCond %{HTTPS} !on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
答案 0 :(得分:1)
您的规则是,您不需要2个规则来实现相同的目标。它们都会重定向到您网站的https版本,因此您可以使用[OR]
RewriteEngine on
RewriteCond %{HTTPS} !^on [OR]
RewriteCond %{HTTP_HOST} !^domain\.com$ [NC]
RewriteRule ^(.*)$ https://domain.com/$1 [L,R=301]
因此,如果没有www(或任何其他子域),将会将非http的内容重定向到https。并使用https将www重定向到非www。 2条件相同的规则。