![Apache HTTPS 从旧域名重定向到新 HTTPS 域名](https://linux22.com/image/631844/Apache%20HTTPS%20%E4%BB%8E%E6%97%A7%E5%9F%9F%E5%90%8D%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E6%96%B0%20HTTPS%20%E5%9F%9F%E5%90%8D.png)
我以前有一个域名,它曾经有 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
您需要为旧域名创建一个单独的虚拟主机,其中安装了旧域名的证书和私钥。然后您可以将重写规则放在那里。
目前,您的虚拟主机将捕获所有域,因此它会向连接到服务器的客户端(包括想要连接到旧域的客户端)提供新的域证书。