我正在处理的网站有问题。有几个站点位于相同的环境中。服务器使用一个 SSL 证书来保护这些域,例如:domain1.com、http://www.domain1.com 和 http://www.domain2.com。
SSL 证书不保护没有 www 子域的 domain2.com。
问题是(特别是在移动设备上)domain2.com 没有受到保护。如果我们访问 http://www.domain2.com,它就会受到保护。
为什么在发出站点不安全的警告之前,以下条件在移动设备上无法将站点重定向到 www 版本?
# Redirect Non-WWW to WWW
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.\*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
# Force SSL on entire site
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteRule ^(.\*)$ https://%{HTTP_HOST}/$1 [R,L]
这些是加载 WordPress 之前 .htaccess 文件中的第一条规则。
回答1
基于包括非移动设备在内的浏览器安全设置,在发送http请求之前会显示警告,以防止通过非安全连接暴露信息,这就是modrewrite无法解决这个问题的原因,只是因为它甚至没有被调用。您应该在 SSL 证书中包含您的“domain2.com”作为替代名称。