我一直在尝试为我的网站配置此功能,但无法使用。
我习惯在我的.htaccess上使用cond来强制主域名使用www而子域名没有任何内容,但是因为我有SSL,所以我遇到了一些问题。
这是一个通配符SSL。
我需要的是强制HTTPS://主域上的WWW,以及子域上的HTTPS://。
I.E:http://www.domain.com - > https://subdomain.domain.com
那有什么规则吗? 谢谢!
EDITED
现在我像Jon一样使用
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^domain\.com\.br$ [NC]
RewriteRule ^.*$ https://www.domain.com.br%{REQUEST_URI} [R,L]
# ---------- #
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^(www\.)?domain\.com\.br$ [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.|)(.*)$ [NC]
RewriteRule ^.*$ https://%1%{REQUEST_URI} [R,L]
问题是,当我在主域上输入HTTP://有或没有WWW时,ir强制HTTPS://和WWW,这没关系...
但是在子域名中,当我键入HTTP时,它不会强制HTTPS,它只会重定向到主域...如果我将.htaccess放在子域的目录中,则不会发生这种情况。 在我的子域dir中有.htaccess,如果我输入HTTP,它会强制HTTPS正常...
有什么建议吗?
答案 0 :(得分:6)
尝试:
RewriteEngine On
# for subdomains
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^(www\.)?domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.|)(.*)$ [NC]
RewriteRule ^.*$ https://%1%{REQUEST_URI} [R,L]
# for main domains
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^.*$ https://www.domain.com%{REQUEST_URI} [R,L]