目前,http://www.example.com/由Apache提供服务。不久前,还有一个内部运行的Rails博客应用程序:
http://192.168.10.1:3000
现在我们想让用户从互联网访问内部应用程序,因此将Apache proxy / reverseproxy设置为:
<Location /blog>
Order deny,allow
Allow from all
ProxyPass http://192.168.10.1:3000
ProxyPassReverse http://192.168.10.1:3000
</Location>
希望用户可以通过以下方式访问博客应用程序:
http://www.example.com/blog
问题是,重定向的Rails路由都是错误的,例如:http://www.example.com/blog
需要登录,未登录的用户被路由到/login
重定向到:
http://www.example.com/login
(不存在,并且不加载js和css等资源),而不是:
http://www.example.com/blog/login
有没有办法配置rails路由来处理上述要求?或者根本不可能在Apache背后代理Rails应用程序?
答案 0 :(得分:0)
您可以尝试使用.htaccess代理方法:
我们假设这是您的应用http://192.168.10.1:3000
创建以下.htaccess规则:
RewriteRule ^blog/(.*)$ http://192.168.10.1:3000/$1 [P]
在此示例中:访问http://www.example.com/blog/<anything>
链接的客户将代理到http://192.168.10.1:3000/<anything>
我希望这会有所帮助
答案 1 :(得分:0)