如何configurationApache为转发代理服务器正则expression式replace域名?

例如,我想设置一个转发代理,将HTTP请求转发到a.com,b.com,c.com到a.mirror.com,b.mirror.com,c.mirror.com。

目前我必须configuration3个虚拟主机:

host-a: ServerName a.com ProxyPass / http://a.mirror.com/ host-b: ServerName b.com ProxyPass / http://b.mirror.com/ host-c: ServerName c.com ProxyPass / http://c.mirror.com/ 

有没有办法重写http请求的域部分? 如:

 ProxyPassMatch http://(.*).com/ http://$1.mirror.com/ 

我不知道是否必须通过RewriteRules来完成,但我不知道如何正确编写规则以及RewriteRule v ProxyPass的性能,但性能不是一个大问题。

根据你的确切设置的细节,这可以使用mod_rewrite来完成。 你可能会在HTTP_HOST上匹配,删除你想要的主机名的一部分,并将其粘贴到.mirror.com上,然后使用mod_rewrite的[P]标志来启用代理。

这不完全是你想要的,但它可能会让你更接近一点:

http://httpd.apache.org/docs/2.0/rewrite/rewrite_guide.html#uservhosts

你想要这样的东西:

 RewriteCond %{HTTP_HOST} ^(.*)\.com RewriteRule (.*) %{SERVER_PROTOCOL}://%1.mirror.com$1 [P] 

(未经testing)。