2013-04-11 144 views
0

我想:在SSL虛擬主機使用Apache RedirectMatch

  • 重定向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> 

回答

0

我的問題是,如果有一個proxyPass規則,它將優先於任何重定向規則。

因爲我需要這臺機器來執行重定向和代理服務器,我唯一能找到的解決方案是使用mod_rewrite來「代理」並將url更改爲/sweetApp/