.htaccess 特定域的htaccess强制ssl

.htaccess 特定域的htaccess强制ssl,.htaccess,ssl,https,.htaccess,Ssl,Https,如何对当前拥有的特定域强制使用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 %{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]
但它给了我一个无限的循环

试试看:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.){0,1}exampledomain\.org$
RewriteRule ^/?$ "https\:\/\/www\.examplemydomain\.org\/" [R=301,L]
这应该起作用:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} exampledomain\.org$ [NC]
RewriteRule ^ https://www.examplemydomain.org%{REQUEST_URI}  [R=301,L,NE]

看起来你在做两件不同的事情。当缺少一个
www
时,您正在添加一个
www,当不使用时,您正在强制使用SSL。所以有两个不同的条件,其中一个为真应该强制重定向。这意味着您希望使用
[或]
标志,但如果请求已经是SSL,则使用它的方式会中断。尝试:


插入符号和目标地址之间的空间非常重要;-)我学到了一件事,部分是通过反复试验。@anubhava子域呢?例如:sub.exampledomain。com@MortezaRajabi:然后您可以使用:
RewriteRule^https://%{HTTP\u HOST}%{REQUEST\u URI}[R=301,L,NE]
@anubhava,我需要它用于特定域。我的网站上还有其他域,但我只需要为特定子域强制SSL。在此之前,您仍然需要
RewriteCond%{HTTP_HOST}=sub.exampledomain.org
条件
RewriteRule
RewriteCond %{HTTP_HOST} ^exampledomain\.org$ [OR]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.examplemydomain.org/$1 [R=301,L]