apache - 将非 SSL 域重定向到具有不同 TLD 的 SSL 域

标签 apache .htaccess redirect ssl

我正在尝试让“http://example.co.ukhttps://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/

相关文章:

regex - 带有可选斜杠的简单重写规则

javascript - 如何使用 jQuery 修改 POST headers onclick?

android - 如何在 Android Volley 中使用 setEntity?

php - 如果网址有index.php/somefileOrsomedirectory,如何重定向

apache - 将 URL 重定向到另一个 URL

python - Django 带参数返回 redirect()

php - 从 PHP 框架内重定向网站

apache - WAMP Apache 未启动

apache - 使用 htaccess 阻止特定文件扩展名?

apache - .htaccess rewritecond 和规则无法找出末尾的额外斜杠