Apache 重写 HTTPS 站点的规则和 DNS 设置

per*_*ism 2 domain-name-system mod-rewrite https ssl-certificate apache-2.2

对于位于以下位置的 Web 应用程序:

https://www.domain.com/
Run Code Online (Sandbox Code Playgroud)

使用颁发给“www.domain.com”的 SSL 证书,

什么是正确的重写规则、DNS 设置或两者的组合,它使以下每个 url 无缝重定向到https://www.domain.com/

 1. http://www.domain.com
 2. http://domain.com
 3. https://domain.com
Run Code Online (Sandbox Code Playgroud)

困难在于#3。https://domain.com往往会导致浏览器安全消息。主要的 HTTPS 站点是如何做到这一点的?以 Paypal.com 为例。

Chr*_*s S 5

詹姆斯 回答的后续:

RewriteCond %{HTTP_HOST} !^www.domain.com$    [OR]
RewriteCond %{HTTP_PORT} !^443$
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

这仍然不能解决 #3,你需要一个通配符或 UCC 证书。

  • @perrierism:您可以获得涵盖 *.exmaple.com(包括 example.com)的通配符证书。您还可以获得包含多个主题备用名称的 UCC 证书(即,同一证书上的 www.example.com 和 example.com)(请注意,UCC 只有一个 SN,因此查看证书的任何人都只会看到一个其上“特色”的名称)。 (2认同)
  • 仅供参考,我认为通配符证书在这里不起作用。我只是在 FireFox3 和我们的网站之一使用通配符进行了尝试。它似乎窒息,因为 `http://domain.com` 不使用子域。看起来通配符不会匹配“无”。UCC 可能是你唯一的赌注。 (2认同)