繁体   English   中英

使用mod_proxy的Rails根URL

[英]Rails root url with 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助手和其他带有相对url的助手的想法很好。 我打算使用它们。 我该如何设置正确的根路径以供在helper中使用的rails?

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

代理请求关闭
ProxyPreserveHost开启

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

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

在config.ru中

映射“ / 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来获取带有baseuri / ror的uri

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM