使用mod_proxy导航根URL

时间:2013-05-17 04:03:12

标签: php ruby-on-rails ruby routes mod-proxy

Rails版本:3.2
我有一个现有的PHP站点,我想用Rails添加新功能。

最后一个方法是将整个站点迁移到rails,因此我选择使用mod_proxy通过子路径集成rails:/ ror

这是我的mod_proxy设置:

<Proxy *>
  Order deny,allow
  Allow from all
</Proxy>
ProxyPass /ror http://localhost:3000/
ProxyPassReverse /ror http://localhost:3000/

问题是,当我想要使用url helper时,rails会给出错误的相对路径。

<%= url_for(:action => 'index', :controller => 'travels' %>

给出

/travels/

正确的结果将是

/ror/travels/

url helper和其他帮助器与相对url的想法很好。我打算用它们。 如何为帮助程序中的rails设置正确的根路径?

1 个答案:

答案 0 :(得分:0)

如果您使用的是rails 4,则可以在代理声明之前添加以下内容:

  

ProxyRequests Off      ProxyPreserveHost On

并添加retry = 0以允许rails服务器重新启动

  

ProxyPass / ror http://localhost:3000/ror重试= 0

在config.ru中

  

map“/ ror”做        运行Rails.application
     端

     

地图“/”做
   运行Rails.application
  结束

在config / application.rb中 添加以下行:

  

config.action_controller.relative_url_root =“/ ror”

请注意,这将引导所有网址:

  

http://domain.com/rorhttp://localhost:3000/ror

记得使用link_to或root_url来获取uri with baseuri / ror