Answers:
不,DNS只是将URL的主机名部分映射到IP地址。
网址,例如
http://www.example.com/path/whatever
https://www.example.com/path/whatever
两者都包含相同的主机名www.example.com,这是唯一引用DNS的部分。您的浏览器会查看协议部分(http或https),以确定应使用哪种协议来联系该主机。
要强制将HTTP连接更改为HTTPS连接,您应该配置Web服务器以侦听URL中指定的端口,如果协议是HTTP,则使用适当的重定向响应进行回复。有很多方法可以执行-查看Apache手册或询问。
如果没有任何内容(或更糟的是,专用的Webmail服务器?)侦听URL中指定的端口,则需要使每个人都使用新的URL或重新考虑与Webmail冲突的解决方案。
最好将Webmail移至另一个端口,并使用Apache将相关URL重定向到Webmail服务。
基本上,我希望允许访问子域的用户自动转发到HTTPS版本,因为我已禁止监听该站点的端口80(Webmail系统与我的Web服务器冲突)
听起来您在端口80上监听了另一个服务守护程序,因此您将无法使用当前设置进行此操作。任何http请求都将直接转到您计算机上的端口80(已禁用)。当用户向http://
主机发送请求时,您需要重新启用Apache以便侦听端口80并重写URL 。
执行此操作的标准Apache方法是mod_rewrite
:
<VirtualHost *:80>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
有关更多文档,请参见http://httpd.apache.org/docs/current/mod/mod_rewrite.html。