Ruby on rails ApachePassenger和Rails应用程序中的代理传递子目录

Ruby on rails ApachePassenger和Rails应用程序中的代理传递子目录,ruby-on-rails,apache,passenger,reverse-proxy,Ruby On Rails,Apache,Passenger,Reverse Proxy,我有一个rails应用程序(www.myapp.com),我正在使用Apache Passenger。虚拟主机的配置如下所示: <VirtualHost *:80> DocumentRoot "/var/www/myapp/current/public" RailsEnv production <directory "/var/www/myapp/current/public"> Options FollowSymLinks AllowOver

我有一个rails应用程序(
www.myapp.com
),我正在使用Apache Passenger。虚拟主机的配置如下所示:

<VirtualHost *:80>
  DocumentRoot "/var/www/myapp/current/public"
  RailsEnv production
  <directory "/var/www/myapp/current/public">
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
  </directory>
  RailsBaseURI /
</VirtualHost>

DocumentRoot“/var/www/myapp/current/public”
RailsEnv生产
选项如下符号链接
不允许超限
命令允许,拒绝
通融
RailsBaseURI/
我有一个博客,外部托管在其他域上,比如说
www.myapp-blog.com
。我想301将所有请求重定向到
www.myapp.com/blog
www.myapp.com/blog/*
www.myapp-blog.com
上的相关页面。其他一切都应该通过我的Rails应用程序


我应该如何修改上述虚拟主机配置以实现此目的?

使用apache端口转发技术

 <VirtualHost *:80> 
      ProxyPreserveHost On
      ProxyRequests Off
      ServerName www.myapp-blog.com
      ServerAlias myapp-blog.com
      ProxyPass / http://www.myapp.com/blog/
      ProxyPassReverse / http://www.myapp.com/blog
    </VirtualHost> 

代理主机
代理请求关闭
服务器名www.myapp-blog.com
ServerAlias myapp-blog.com
ProxyPass/http://www.myapp.com/blog/
ProxyPassReverse/http://www.myapp.com/blog

如果您想在同一个应用程序中从一个url重定向到另一个url,那么在其他所有内容都必须通过我的Rails应用程序的情况下,这如何维持第二个要求。然后需要在proxyPass和proxyReversePass中指定第二个url。如果它们在同一台服务器上运行,则可以使用端口号。我想你不需要301重定向。阅读有关apache重定向的更多信息。