我正在尝试让“http://example.co.uk”和“https://example.co.uk”重定向到“https://example.com”。
站点“https://example.com”设置为始终使用 HTTPS:
<VirtualHost *:80>
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
每当我使用 A 记录设置“example.co.uk”以转到服务器的 IP 地址时,Chromium 会给出一个 SSL 错误,询问我是否确定要在同时使用 http 和 https 时继续, 并且 Firefox 在使用 https 时显示“不受信任的连接”页面(http 显示站点但隐藏了非 SSL 内容)。
我试图让“https://example.co.uk”和“http://example.co.uk”重定向到“https://example.com”:
<Virtualhost example.co.uk:80>
ServerName example.co.uk
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?example\.co.uk$ [NC]
RewriteCond %{SERVER_PORT} =80
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?example\.co.uk$ [NC]
RewriteCond %{SERVER_PORT} =443
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
</VirtualHost>
..它在 Chromium 中部分工作,因为它重定向到“example.com”的非 https 版本并且在 Firefox 中没有任何影响。
问题是网站的 https 版本不再有效,上面的重写规则也不再有效。
如何让“https://example.co.uk”和“http://example.co.uk”在没有任何 SSL 警告的情况下转到“https://example.com”?
最佳答案
如果没有设置有效的证书,您将无法获得无警告的 https,不幸的是,这对您来说包括重定向。您需要为您的 .co.uk 设置(使用单独的 IP 地址、SNI 或主题替代名称)正确签名的证书,并确保您的 DNS 设置为指向为其提供服务的 IP。这可能比它的值(value)更麻烦。
关于apache - 将非 SSL 域重定向到具有不同 TLD 的 SSL 域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18932323/