【问题标题】:Using Apache RedirectMatch in an SSL Vhost在 SSL 虚拟主机中使用 Apache RedirectMatch
【发布时间】:2013-04-11 17:20:18
【问题描述】:

我想:

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

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

最后,我希望对sweetSite.com 的外部请求进行代理和重定向,因此内部服务器只能看到对192.168.3.92:9080/sweetApp/ 的请求

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

#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>

【问题讨论】:

    标签: apache redirect proxy mod-proxy


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-05
      • 2016-11-05
      • 2013-04-04
      • 1970-01-01
      • 2010-09-05
      • 2018-11-22
      • 2013-01-27
      • 1970-01-01
      相关资源
      最近更新 更多