通过htaccess从旧的HTTPS域重定向到新的HTTPS域时出现问题?

时间:2018-12-10 01:38:47

标签: apache .htaccess https

我尝试了成千上万种.htaccess改写形式,但无法正常工作。

我以前有一个HTTPS old-domain.com ,我需要将其转发到 new-domain.io 。两者都是HTTPS,但只有新域在服务器上具有SSL证书。这使得试图加载old-domain.com的浏览器只是在浏览器中旋转。

我已经有一个DNS转发,它只能与http(而非https)一起使用。我认为我需要使用类似%{HTTP:X-Forwarded-Proto} 的方法,但不确定如何使用。到目前为止没有任何进展。

https://old-domain.comhttps://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重定向的链接。 有两种方法可以正确修复它。

  1. 删除旧域DNS上的DNS转发。然后确保仍然存在有效的SSL证书,并在其.htaccess文件上放置重定向,以通过以下方式处理重定向:

    RewriteEngine开启

    RewriteCond%{HTTP_HOST}(w *)domain.com $ [NC] RewriteRule ^ {http://newdomain.com% {REQUEST_URI} [L,R = 301]

  2. 保留旧域的DNS转发,并在包含两个域的新域上添加新的多域SSL证书。这很棘手,因为您将不得不手动对旧域进行身份验证,因为证书将不会驻留在旧域主机中。

我选择并成功实施了#1。

0 个答案:

没有答案