Apache HTTPS 从旧域名重定向到新 HTTPS 域名

Apache HTTPS 从旧域名重定向到新 HTTPS 域名

我以前有一个域名,它曾经有 SSL 证书,现在仍然有。但我已更改域名,并且我也为该新域名准备了新的 SSL 证书。

我仍然有用户通过访问该网站https://shabbasheep.myolddomain.com,它给了我This is probably not the site that you are looking for!

但当他们通过该网站访问时,shabbasheep.myolddomain.com它会正确地将他们重定向到shabbasheep.mynewdomain.info

这是我的 Apache 条目的样子,从中得到了一个想法这里

<VirtualHost *:80>
    ServerName shabbasheep.myolddomain.com

    RewriteEngine On 
    RewriteCond %{HTTP_HOST} shabbasheep.myolddomain.com$
    RewriteRule ^(/(.*))?$ https://shabbasheep.mynewdomain.info$1 [L,NC,R=301]  
</VirtualHost>

我的 SSL

<VirtualHost *:443>
    ServerName shabbasheep.mynewdomain.info
    ServerAlias www.mynewdomain.info

    RewriteEngine On 
    RewriteCond %{HTTP_HOST} shabbasheep.myolddomain.com$
    RewriteRule ^(/(.*))?$ https://shabbasheep.mynewdomain.info$1 [L,NC,R=301]  

    SSLEngine on
    SSLCertificateFile "mypathto.crt"
    SSLCertificateKeyFile "mypathto.pem"
    SSLCACertificateFile "mypathto.crt"

    ...    
    ...
    ...
</VirtualHost>

如果这是一个重复的问题,请提前道歉,我确实查看了一下,但似乎没有任何效果,或者可能是由于我缺乏理解。

有人可以指导我这一点吗?

提前致谢。

答案1

您需要为旧域名创建一个单独的虚拟主机,其中安装了旧域名的证书和私钥。然后您可以将重写规则放在那里。

目前,您的虚拟主机将捕获所有域,因此它会向连接到服务器的客户端(包括想要连接到旧域的客户端)提供新的域证书。

相关内容