Apache – 将HTTP:// SITE请求转发到HTTPS:// SITE

我想知道是否有任何方式与Windows Server 2008的DNS转发使用HTTP到HTTPS相同的域的请求? 坦率地说,我有一种感觉,它实际上是在networking服务器,但我想我会开始使用DNS系统,没有任何数量的谷歌search帮助。 基本上我想允许用户访问一个子域自动转发到HTTPS版本,因为我已经禁止在该网站的端口80(networking邮件系统与我的networking服务器冲突)

请问是否有什么不清楚的地方,或者我解释得不好。

编辑:通过它认为它显然是无关的DNS(线索是在名称;))有谁知道如何configuration这与Apache(我认为这是答案在哪里)

不,DNS只是将URL的主机名部分映射到IP地址。

url如

http://www.example.com/path/whatever https://www.example.com/path/whatever 

两者都包含相同的主机名www.example.com,这是唯一被称为DNS的部分。 您的浏览器查看协议部分(http或https)来决定使用哪种协议来联系该主机。

要强制将HTTP连接更改为HTTPS连接,应该将Web服务器configuration为侦听URL中指定的端口,并在协议为HTTP时回复合适的redirect响应。 有很多方法可以做到 – 检查Apache手册或询问。

如果没有任何东西(或者更糟糕的话,一个专用的webmail服务器?)监听URL中指定的端口,您需要让每个人都使用一个新的URL或者重新考虑您的解决scheme以解决与webmail的冲突。

最好将webmail移到另一个端口,并让Apache将相关的URLredirect到webmail服务。

基本上我想允许用户访问一个子域自动转发到HTTPS版本,因为我已经禁止在该网站的端口80(networking邮件系统与我的networking服务器冲突)

因为听起来你有一个不同的服务守护进程在端口80上侦听,所以你不能用你当前的设置来做到这一点。 任何http请求将直接到您的机器上的端口80(您已禁用)。 您将需要重新启用Apache以侦听端口80,并在用户向您的http://主机发送请求时重写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