在显示404错误消息之前尝试重写未找到的页面

时间:2011-02-22 21:32:47

标签: ruby-on-rails apache routes rewrite

我正在开发的rails代码库支持两个Web应用程序,当用户访问我们的域时,我们使用apache智能地重写url,例如,如果你从我们的网站接近

app_name.domain_name.com

将其重写为

app_name.domain_name.com/app_name

并调用我们的嵌套路由。这是我们的应用程序的最近更改,然而(显然)一些书签没有正确转发。我想做的是修改我们的路线(或者可能添加一小块中间件),尝试重写到正确的URL而不是显示404消息。

也就是说,如果客户试图查看

app_name.domain_name.com/controller/action

我们的嵌套路由错过了呼叫,而不是404ing,应用程序将请求重写为:

app_name.domain_name.com/app_name/controller/action

我可以使用巧妙的路线,还是使用某些中间件?如果没有,可以用apache重写来完成吗?

由于

1 个答案:

答案 0 :(得分:0)

试试这个

RewriteCond %{HTTP_HOST} ^web_app.benchmark.company.net$ [NC]
RewriteRule ^/?(.*) /web_app/$1 [L,R=permanent]

(请注意,我没有测试过这个)

我建议你阅读Apache rewrite guide