我们公司最近更改了其中一个农产品网站的域名,并希望将旧网站的所有流量重定向到新网站。
现在会出现隐私错误,因为 ssl 位于 www.newdomain.com 而不是 www.olddomain.com。
是否有办法将 www.olddomain.com 重定向到 www.newdomain.com 而不会报告此错误?我怀疑我还需要在旧域上安装 SSL,但希望尽可能避免这种情况。
到目前为止,我已尝试通过 vhost 和/或 htaccess 来执行此操作,并在新域 conf 文件中为旧域指定别名,例如:
RewriteCond %{HTTP_HOST} ^olddomain.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com [NC]
RewriteRule ^(.*)$ https://www.newdomain.com/$1 [L,R=301,NC]
答案1
您需要两个域的 SSL 证书。为了从一个重定向到另一个,您首先需要一个证书olddomain.com
,www.olddomain.com
以便浏览器接受重定向指令。然后,您需要一个证书来www.newdomain.com
托管新域。
因此,您可以为旧域设置一个虚拟主机,该虚拟主机仅重定向到新域。
参见阿帕奇重定向。
<VirtualHost *:443>
ServerName olddomain.com
Redirect permanent / https://www.newdomain.com/
SSLEngine on
SSLCertificateFile /path/to/olddomain.com/cert.pem
SSLCertificateKeyFile /path/to/olddomain.com/privkey.pem
SSLCertificateChainFile /path/to/olddomain.com/chain.pem
</VirtualHost>
<VirtualHost *:443>
ServerName www.newdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /path/to/www.newdomain.com/cert.pem
SSLCertificateKeyFile /path/to/www.newdomain.com/privkey.pem
SSLCertificateChainFile /path/to/www.newdomain.com/chain.pem
</VirtualHost>