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

时间:2013-09-21 11:59:57

标签: 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>

每当我将“example.co.uk”设置为A记录转到服务器的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中有效,因为它重定向到非“https”版本的“example.com”,并且在Firefox中没有任何影响。

这个问题是网站的https版本不再有效,上面的重写规则也不行。

如果没有任何SSL警告,如何让“https://example.co.uk”和“http://example.co.uk”转到“https://example.com”?

1 个答案:

答案 0 :(得分:2)

如果没有设置有效的证书,您将无法获得免提https,不幸的是,对于包含重定向的您而言。您需要为.co.uk设置(使用单独的IP地址,SNI或主题备用名称)正确签名的证书,并确保将DNS设置为指向为其提供服务的IP。这可能比它的价值更麻烦。