【发布时间】:2014-01-20 14:37:18
【问题描述】:
我一直在尝试为我的网站配置此功能,但无法做到。
我曾经在我的 .htaccess 上设置一个 cond 来强制主域使用 www,而子域没有强制使用,但是由于我有 SSL,所以我遇到了一些问题。
这是一个通配符 SSL。
我需要的是在主域上强制使用 HTTPS://WWW,在子域上强制使用 HTTPS://。
即:http://www.domain.com -> https://subdomain.domain.com
这有什么规定吗? 谢谢!
已编辑
现在我像 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,我会强制 HTTPS:// 和 WWW,没关系...
但是在子域上,当我键入 HTTP 时,它不会强制使用 HTTPS,它只会重定向到主域...如果我将 .htaccess 放在子域的目录中,则不会发生这种情况。 在我的子域目录中使用 .htaccess,如果我键入 HTTP,它会正常强制 HTTPS...
有什么建议吗?
【问题讨论】:
-
你的 htaccess 现在是什么样子的
-
现在看起来像:
RewriteEngine OnRewriteCond %{HTTPS} !=onRewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]这不是强制使用 WWW,但至少目前是强制使用 HTTPS。 -
主域必须强制 HTTPS 和 WWW... 子域必须强制 HTTPS 和 NON-WWW
标签: .htaccess http ssl https subdomain