2016-08-05 60 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)。 –