Apache 仅在内部重写子域名

Apache 仅在内部重写子域名

我在网上搜索了好几天,但还是没找到解决问题的方法。假设我有一个在 mydomain.com 上运行的 Web 应用程序(使用 Ruby on Rails 和 apache 乘客模块编写)

我所需要的只是将指向 www.domain2.com 的用户重写为 domain2.mydomain.com,使用户浏览器停留在 www.domain2.com,但在我的应用程序中“捕获”子域字符串。

这是我的 apache 配置 (vhost domain2.com) 用于该作业:

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

但它不起作用。一切正常(它指向我的应用程序等等),但应用程序捕获了“www”子域字符串(位于用户浏览器上),但不是预期的字符串。

没有“P”标志的 RewriteRule 工作正常。我的应用程序捕获正确的域名(domain2),但用户浏览器中的 URL 发生变化(变为 domain2.mydomain.com)

我该怎么办?也许这样的把戏是不可能做到的?

非常感谢您的回答。

答案1

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

这里有关使用 Apache httpd 及其 mod_proxy 进行反向代理设置的详细信息。

相关内容