8

如何为我目前拥有的特定域强制使用 SSL

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这是可行的,但是我的主机上有几个附加域,当我尝试访问其他附加域时,附加域也被迫使用 SSL。

我试过这个:

RewriteCond %{HTTP_HOST} ^exampledomain\.org$ [OR]
RewriteCond %{HTTP_HOST} ^www\.exampledomain\.org$
RewriteRule ^/?$ "https\:\/\/www\.examplemydomain\.org\/" [R=301,L]

但它给了我一个无限循环。

4

3 回答 3

17

这应该有效:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} exampledomain\.org$ [NC]
RewriteRule ^ https://www.examplemydomain.org%{REQUEST_URI}  [R=301,L,NE]
于 2013-10-17T20:46:59.067 回答
2

看起来你在这里做两件不同的事情。您在www缺少一个时添加一个,并且在不使用 SSL 时强制使用它。所以有两种不同的条件,任何一个为真都应该强制重定向。这意味着您想使用该[OR]标志,但是如果请求已经是 SSL ,那么您使用它的方式就会中断。尝试:

RewriteCond %{HTTP_HOST} ^exampledomain\.org$ [OR]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.examplemydomain.org/$1 [R=301,L]
于 2013-10-17T20:47:59.550 回答
0

尝试:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.){0,1}exampledomain\.org$
RewriteRule ^/?$ "https\:\/\/www\.examplemydomain\.org\/" [R=301,L]
于 2013-10-17T20:43:21.223 回答