我正在尝试将“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>
每当我将“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”?
答案 0 :(得分:2)
如果没有设置有效的证书,您将无法获得免提https,不幸的是,对于包含重定向的您而言。您需要为.co.uk设置(使用单独的IP地址,SNI或主题备用名称)正确签名的证书,并确保将DNS设置为指向为其提供服务的IP。这可能比它的价值更麻烦。