【问题标题】:Redirect https://[Domain-Name].com to https://www.[Domain-Name]将 https://[Domain-Name].com 重定向到 https://www.[Domain-Name]
【发布时间】:2014-04-16 10:33:37
【问题描述】:

我知道这是一项常见任务,但我无法弄清楚。我们有 www.domain-name.com 的 SSL 证书,但没有 domain-name.com 的 SSL 证书。当访问者打开 URL https://domain-name.com 时,他们会收到证书错误。

我尝试了以下 RewriteRules & -Conditions:

RewriteEngine On
Rewritecond %{https_host} ^domain-name.com [nc]
RewriteRule ^(.*)$ https://www.domain-name.com/$1 [r=301,nc]

Rewritecond %{http_host} ^domain-name.com [nc]
RewriteRule ^(.*)$ https://www.domain-name.com/$1 [r=301,nc]

RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}$1 [R=301,L]

感谢您的帮助。

【问题讨论】:

    标签: .htaccess mod-rewrite ssl


    【解决方案1】:

    你可以尝试任何你想要的东西,你不会通过重写来解决问题。

    当然,您可以将请求重定向到您拥有有效证书的域。但这实际上不是你的问题。您手头的问题是,无论您因原始请求而发送的任何回复没有具有有效证书的域,浏览器都会总是吐出警告/错误。这样做是正确的行为。原因很简单:浏览器收到来自服务器的回复,声称是通过 https 请求的服务器,但无法通过有效证书证明该声明。这明显违反了安全模型并且必须导致错误。这就是验证证书的重点:确保发送答案的服务器确实是它声称的系统。如果没有有效的证书,无论您尝试什么“解决方法”,您都无法做到这一点。

    您唯一的选择是获取域名的有效证书,并且名称中没有丑陋的“www”。实际上,最好的选择是获得“通配符证书”,即对 both 域名都有效的单一证书。

    【讨论】:

    • 最好的解决方案是使用subjectAltName 部分中提到的备用域名获取证书。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2019-11-15
    • 2015-04-11
    • 2012-06-09
    相关资源
    最近更新 更多