我尝试了成千上万种.htaccess改写形式,但无法正常工作。
我以前有一个HTTPS old-domain.com ,我需要将其转发到 new-domain.io 。两者都是HTTPS,但只有新域在服务器上具有SSL证书。这使得试图加载old-domain.com的浏览器只是在浏览器中旋转。
我已经有一个DNS转发,它只能与http(而非https)一起使用。我认为我需要使用类似%{HTTP:X-Forwarded-Proto} 的方法,但不确定如何使用。到目前为止没有任何进展。
https://old-domain.com 和https://www.old-domain.com
都需要重定向到https://new-domain.io(以及任何URI,如/something/this.html)
看起来像这样的东西应该可以工作,但是可以无限重定向。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-domain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.old-domain\.com$
RewriteRule (.*)$ https://new-domain.io/$1 [R=301,L]
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*)$ https://new-domain.io/$1 [R=301,L]
解决方案-------- 新的域.htaccess文件本身无法修复HTTPS重定向的链接。 有两种方法可以正确修复它。
删除旧域DNS上的DNS转发。然后确保仍然存在有效的SSL证书,并在其.htaccess文件上放置重定向,以通过以下方式处理重定向:
RewriteEngine开启
RewriteCond%{HTTP_HOST}(w *)domain.com $ [NC] RewriteRule ^ {http://newdomain.com% {REQUEST_URI} [L,R = 301]
保留旧域的DNS转发,并在包含两个域的新域上添加新的多域SSL证书。这很棘手,因为您将不得不手动对旧域进行身份验证,因为证书将不会驻留在旧域主机中。
我选择并成功实施了#1。