通过 .htaccess 将 http://example.com 重定向到 https://www.dummy.com/

Redirecting http://example.com to https://www.dummy.com/ via .htaceess

我的一个客户想更改他们的域名,但想保持他们的 Google 排名。为此,他们将两个域名指向同一个 IP,但我们遇到了一个问题,如果您通过旧域访问该站点,您会收到安全证书警告,并且该页面只会加载旧域名.

我想做的是检测何时有人通过旧域访问站点并将其重写到新域。例如,如果他们访问example.com/some-page.htm,它将重写为https://www.dummy.com/some-page.htm

我在某个地方发现了这个代码片段,声称这样做,但它只是让网站崩溃:

RewriteCond %{HTTP_HOST} !^example.com$ [NC]
RewriteRule ^(.*)$ https://www.dummy.com/ [R=301,L]

这是一个 WordPress 站点,所以我使用普通的 WordPress 重写规则,我使用 HTML5 Boiler Plate .htacess 启用 http > https 重定向、非 www > www 重定向,并强制 HTTP严格的运输安全,如果有任何影响的话。

您需要将条件更改为:

RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule ^ https://www.dummy.com%{REQUEST_URI} [NE,R=301,L]

但是请记住,如果您访问 https://exampl.com 并且证书是针对 dummy.com 的,那么 SSL 证书警告仍然会存在,因为在 mod_rewrite 之前调用了 SSL 握手重定向到新站点.