padrino docs让你知道如何在控制器的上下文中进行前置过滤,但我正在尝试进行全局过滤。
我想解决的问题是我的域名应该转发到www。版本,但godaddy没有正确地做到这一点。所以现在我想在我的代码中手动重定向 - 因此在过滤之前进行全局重定向。
或者我应该看一下'中间件'呢?
答案 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