我正在尝试在apache中为模式的URL编写重定向:
https://server.com
至https://www.server.com
没有太大成功
重新启动的原因:我的SSL证书位于www.server.com
,因此我希望用户访问正确的网站(并查看安全图标)。
问题:问题在于,当我尝试打开https://server.com
时,浏览器会给我不正确的证书错误,并且在忽略不正确的证书问题之前,我的RewriteRule都没有执行。
在这种情况下如何重定向?
答案 0 :(得分:8)
您无法使用一个证书执行此操作。原因是Web服务器需要在进行重定向之前进行ssl握手,因此您将始终遇到无效证书的问题。
你真的只有一个选项可以做到这一点 - 包括www和没有带证书和重定向的www。这可以通过多种方式完成,要么获得具有多个域名的证书,称为SAN证书,要么获得两个证书,一个用于www,一个用于没有。但是,在第二种情况下,您需要两个具有不同IP的Web服务器来完成您的任务。
另一种使用自己的方法,不用担心。指示用户访问常规http网站,并在需要SSL Cconnection时自行进行重定向。这就是amazon.com实际上做的事情。他们希望您浏览http,他们只有在您购买东西时才会将您重定向到SSL。他们的证书也只适用于www,只需转到https://amazon.com,如果没有www,您将看到他们的证书无效