【问题标题】:Force HTTPS and WWW for domain and only HTTPS for subdomains HTACESS对域强制使用 HTTPS 和 WWW,对子域强制使用 HTTPS HTACCESS
【发布时间】: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 On RewriteCond %{HTTPS} !=on RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L] 这不是强制使用 WWW,但至少目前是强制使用 HTTPS。
  • 主域必须强制 HTTPS 和 WWW... 子域必须强制 HTTPS 和 NON-WWW

标签: .htaccess http ssl https subdomain


【解决方案1】:

试试:

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]

【讨论】:

  • 快到了!我需要的 50% XD!它正确地强制主域使用 HTTPS 和 WWW。对于子域,如果我输入:www.subdomain.domain.com 我会收到 SSL 警告,这就是我要避免的。
  • @KauêPorte 无法避免这种情况,因为您的证书是 *.domain.com不是 *.subdomain.domain.com
  • 我明白了。甚至没有在强制非 WWW 的子域内设置 .htacces?
  • @KauêPorte 这是因为必须先向www.subdomain.domain.com 发出请求,然后才能进行任何重定向。 SSL 握手发生在 请求发送之前,因此在读取 htaccess 之前,SSL 握手发生并且您收到 SSL 警告。
  • 我明白了。非常感谢您的帮助和解释。你真的帮了我!新年快乐!
猜你喜欢
  • 2016-09-25
  • 1970-01-01
  • 2016-03-20
  • 1970-01-01
  • 1970-01-01
  • 2015-07-18
  • 2016-11-12
  • 1970-01-01
  • 2016-06-15
相关资源
最近更新 更多