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

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

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

https://www.domain.com/

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

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

 1. http://www.domain.com
 2. http://domain.com
 3. https://domain.com

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

答案1

作为对第 3 项以及第 2 项的更多帮助,如何使用服务器名称指示在同一主机上使用两个证书。(即:www.domain.com 和 domain.com) Apache 的 Wiki有一些具体信息。——

Christopher Karel

答案2

后续行动詹姆斯的 回答

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

这仍然不能修复问题 #3,为此您需要一个通配符或 UCC 证书。

答案3

我认为最简单的选择是在 htaccess 文件中或直接在 httpd.conf 中使用 mod_rewrite。以下是我用来转发您需要的前两个内容的方法:

RewriteCond %{SERVER_PORT} 80
ReWriteRule ^(.*)$ https://www.domain.com/$1 [R,L]

因此,转发https://domain.comhttps://www.domain.com,你可以这样做:

RewriteCond %{SERVER_PORT} 443
RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [R,L]

我相信有一种方法可以整合这两个规则集,如果你想尝试的话。目前我的 Apache 服务器无法测试它。

答案4

相关内容