0

我想:

  • 将 https 请求重定向//sweetApp/
  • 将所有 http 请求重定向到 https
  • 重定向后,代理请求到内部 IP 地址

我已经设置了这些虚拟主机规则。http 到 https 重定向有效,但重定向到/sweetApp/无效。

最后,我想要一个外部请求sweetSite.com来代理和重定向,所以内部服务器只看到一个请求192.168.3.92:9080/sweetApp/

我使用的是 Apache 2.4.3,所以它应该支持基于名称的 ssl vhosts。

#Redirect to SSL
<VirtualHost *:80>
ServerName sweetSite.com
RedirectMatch ^/$ https://sweetSite.com/
</VirtualHost>

# The Real McCoy
<VirtualHost *:443>
ServerName sweetSite.com

#Map to /sweetApp/ by default
RedirectMatch ^/$ /sweetApp/

SSLEngine On
SSLProxyEngine On
SSLCertificateFile ssl/certificate.crt
SSLCertificateKeyFile ssl/certificate.key

#SSL to HTTP Proxy
ProxyPass / http://192.168.3.92:9080/
ProxyPassReverse / http://192.168.3.92:9080/
</VirtualHost>
4

1 回答 1

0

我的问题是,如果有 proxyPass 规则,它优先于任何重定向规则。

因为我需要这台机器来执行重定向和代理,所以我能找到的唯一解决方案是使用 mod_rewrite 来“代理”并将 url 更改为/sweetApp/.

于 2013-04-11T18:26:15.850 回答