仅在内部重写Apache子域

我search了几天的networking,但没有find解决我的问题。 比方说,我有一个web应用程序(用apache客运国防部编写的Ruby on Rails)运行在mydomain.com

我所需要的是将指向www.domain2.com的用户重写为domain2.mydomain.com,而在www.domain2.com上留下用户浏览器,但在应用程序中“catch”子域string。

那是我的apacheconfiguration(vhost domain2.com)的工作:

RewriteEngine on RewriteCond%{HTTP_HOST} ^(www。)?domain2.com $ RewriteRule ^(。*) http://domain2.mydomain.com $ 1 [P,R = 301,L]

但它不工作。 一切正常(它指向我的应用程序等),但应用程序捕获“www”子域string(即在用户浏览器),但不是预期的。

没有“P”标志的RewriteRule工作得很好。 我的应用程序捕获正确的域名(domain2),但在用户浏览器(到domain2.mydomain.com)

我该怎么办。 也许这是不可能做到这样的伎俩?

非常感谢您的回答。

在你的RewriteRule中同时使用P(代理)和R(redirect)标志没有多大意义。 您应该只使用P(代理)标志。

有关使用Apache httpd及其mod_proxy进行反向代理设置的详细信息,请参阅此处 。