小编pee*_*man的帖子

Apache:发送到安全端口的不安全请求...想要重定向

前言

首先:简单的端口 80 -> 端口 443 重写不会解决这个问题。在几乎所有以前的问题,邮件线程,论坛线程等中,我发现这是第一个无知的回复,并且被重复了好几次。

其次:是的,我知道您不能在同一端口上提供 HTTP 和 HTTPS 流量。 这不是那个。

设想:

通过端口倍增托管多个站点的 Apache 服务器。端口 80 服务于公共站点。端口 443 服务于该站点的安全版本。

端口 7443、8443 和 9443 分别为单独的 SSL 安全站点提供服务。

如果用户输入错误的 URL,或者给出的链接无效,比如http://hostname.tld:7443,他们会看到以下荒谬的页面:

Apache 错误请求错误消息

而不是服务器只是将它们重定向到https://hostname.tld:7443

我的问题是,以Zeus 的屁眼的名义,您如何修改 Apache 的行为或此错误消息以自动重定向用户?

Apache 显然是在为非 https 请求提供服务(以显示该错误消息),即使它是为 HTTPS 配置的。对我来说,不只是默认进行重定向似乎非常愚蠢,但我可以理解为什么他们会采用他们所做的行为,即使我不同意。所以我的问题是:你能改变它吗?他们正在某处处理错误,并且 Apache 是配置的聚宝盆,因此有理由在某处处理此行为的指令,但到目前为止,我一直无法在几个小时的修补中找到它。

更新:

我尝试了多种方法,包括:

  • 使用ErrorDocument 400指令获取 CGI 和仅发送Status 301Location标头的 PHP 脚本。这导致空白页。ErrorDocument 400 https://hostname.tld:7443简单地使用会导致该链接显示在页面上。

  • 使用mod_rewriteI 或 Google 能想到的几乎所有组合,包括完全指导网站的一揽子声明;这些永远不会奏效。从字面上看,他们什么都不做。我猜测 Apache 甚至在尝试处理重写指令之前就遇到了上述错误。 …

http https custom-errors apache-2.2

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

apache-2.2 ×1

custom-errors ×1

http ×1

https ×1