我有一个Apache服务器V2.2,虚拟主机在80上,另一个在444上使用SSL。我想redirect所有这种请求:
http://domain.tld:444/dir1 http://domain.tld:444/dir2
(没有SSL端口上的https)
https://domain.tld:444/dir1 https://domain.tld:444/dir2
为了避免错误400错误的请求。 你知道怎么做?
提前致谢。
你不能这样做。 如果您在端口444上启用了SSL,那么没有SSL连接到该端口将无法正常工作。
Apache不能直接这样做。 当它在端口上侦听时,它正在监听纯HTTP或HTTPS通信,而其他types的连接将会失败。
但是,一个聪明的应用程序可以尝试检查初始连接数据,决定正在尝试什么样的连接,并采取适当的措施。 sslh这样做。 要使用它,你将不得不build立两个Apache虚拟主机,每个虚拟主机在localhost地址的不同端口上监听。 有了这些,你将有sslh监听端口444,并转发HTTP和HTTPSstream量到适当的内部端口。
只需将您的configuration设置为使用mod_alias的redirect:
<VirtualHost *:80> ServerName www.example.com Redirect permanent / https://www.example.com/ </VirtualHost >
来源: mod_alias#redirect