在padrino中过滤之前的全局 - 它是如何完成的?

时间:2012-08-15 08:24:03

标签: padrino before-filter

padrino docs让你知道如何在控制器的上下文中进行前置过滤,但我正在尝试进行全局过滤。

我想解决的问题是我的域名应该转发到www。版本,但godaddy没有正确地做到这一点。所以现在我想在我的代码中手动重定向 - 因此在过滤之前进行全局重定向。

或者我应该看一下'中间件'呢?

3 个答案:

答案 0 :(得分:0)

尝试使用rack-rewrite gem

在你的config.ru中添加类似

的内容
require 'rack/rewrite'
use Rack::Rewrite do
r301 %r{.*}, 'http://www.your-domain.com$&',
  :if => Proc.new { |rack_env| rack_env['SERVER_NAME'] != 'www.your-domain.com' }
end

别忘了在你的Gemfile中加入gem'port-rewrite'。

答案 1 :(得分:0)

谷歌http://logbook.route19.com/post/9018495987/sinatra-redirect-www-to-non-www

中的第一个结果

只需与该链接相反。尝试类似的东西:

before do
  redirect "www.#{request.url}" unless request.host =~ /^www/
end

答案 2 :(得分:-1)

我已将我的全局过滤器添加到app.rb.不确定这是否是正确的方法,但它与在我的控制器中添加before filter相同。

在你的app.rb文件中

before do
  # Code goes here
end