2013-08-04 181 views
0

我试图在我的apache服务器上分别运行端口8082和8083上托管多个网站(运行在tomcat服务器上的app.diff1.com和app.diff2.com)要访问它们,我想使用单个域名(app.in.xxx.com/ diff)以及区分(diff1/diff2)。我使用url重写来分别更改域名。现在,当我尝试访问网站时,我总是碰到第一个虚拟主机。 如果我没有正确接近解决方案,请给我建议。在一个ip地址下的apache上托管多个网站

代码片段:

在httpd.conf文件中。

<IfModule mod_rewrite.c> 
     RewriteEngine On 
     RewriteCond %{HTTP_HOST} ^app\.in\.xxx\.com/([a-z]*)$ 
     RewriteRule^http://www.app.%1.com [L,R=301] 
    </IfModule> 

    <IfModule mod_proxy.c> 
     ProxyRequests off   
    </IfModule> 

    NameVirtualHost *:80 

    <VirtualHost *:80> 
     ServerName www.app.diff1.com 
     ProxyPass/http://www.app.diff1.com:8082/ 
     ProxyPassReverse/http://www.app.diff1.com:8082/ 
    </VirtualHost> 

    <VirtualHost *:80> 
     ServerName www.app.diff2.com 
     ProxyPass/http://www.app.diff2.com:8083/ 
     ProxyPassReverse/http://www.app.diff2.com:8083/ 
    </VirtualHost> 

回答

0

移动你的改写成第一家上市的虚拟主机,并停止试图捕捉URL的第一路径组件,就好像它是HTTP_HOST的一部分 - 捕捉它在重写规则本身和使用$ 1

另请参阅ServerPath,它是执行相同映射的深奥方式。

+0

我试着移动重写成第一个虚拟主机,它工作:) – DS8221

相关问题