2016-08-05 37 views
1
到同一服務器的兩個不同的路徑

考慮兩個網址:如何路由使用Apache

  1. www.mysite.com/*
  2. www.mysite.com/browse/*

後端運行在http://localhost:8080

如何確保具有以下模式的所有請求最終會在我的後端像下面一樣?

www.mysite.com/doA - >本地主機:8080/DOA

www.mysite.com/browse/doA - >本地主機:8080/DOA

因此,基本上www.mysite.com/doA和www.mysite.com/browse/doA都有相同的結果。

我想使用Apache服務器。我可以使用proxy_http重定向一個。但它並不適用於兩個或多個網址的工作:

這是我的配置,對一個URL

<VirtualHost *:80> 
    ProxyPass  /http://localhost:8080/ 
    ProxyPassReverse/http://localhost:8080/ 
    ProxyRequests  Off 
    <Proxy http://localhost:8080/*> 
    Order deny,allow 
    Allow from all 
    </Proxy> 
</VirtualHost> 

回答

1

工作這應該工作:

<VirtualHost *:80> 
ServerName example.com 
ProxyRequests  Off 
ProxyPass   /browse/ http://localhost:8080/ 
ProxyPass  /  http://localhost:8080/ 
ProxyPassReverse/  http://localhost:8080/ 
</VirtualHost> 

的配置ProxyPassProxyPassMatch規則在 中檢查配置的順序。第一條匹配勝利的規則。所以 通常你應該排序衝突ProxyPass規則從 開始最長的URL。否則,較長的URLS的後面的規則將是 隱藏的任何較早的規則使用該URL的前導子字符串

+0

謝謝,它解決了這個問題。 – Morteza

+0

不客氣。此外,您可以[接受答案](http://meta.stackexchange.com/a/5235)。 –