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


1

我想知道Windows Server 2008 DNS是否可以使用HTTP将对域的请求转发到HTTPS上的同一域?坦白说,我觉得它实际上是由Web服务器决定的,但是我认为我将从DNS系统开始,没有任何谷歌搜索的帮助。基本上,我希望允许访问子域的用户自动转发到HTTPS版本,因为我已禁止监听该站点的端口80(Webmail系统与我的Web服务器冲突)

请问是否有不清楚的地方,或者我的解释不充分。

编辑:通过它来思考显然与DNS没有任何关系(线索就在名称中;)有人知道如何使用Apache进行配置(我想这就是答案所在)

Answers:


3

不,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服务。


您好,感谢您的答复。当您发布此内容时,我正在编辑您的问题:)认为我在DNS上有一阵空白。我将再次尝试使用Google搜索,以查看是否可以找到更好的答案
Draineh

2

基本上,我希望允许访问子域的用户自动转发到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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.