在我的Rails 4应用程序中,在应用程序控制器内部实现重定向。
我已经让它在主页上工作,因此foo.com
会重定向到www.foo.com
,但是,如果我输入网址foo.com/about
,它只会重定向回主页www.foo.com
。
这是我正在使用的代码(application_controller.rb):
before_filter :add_www_subdomain
def add_www_subdomain
unless /^www/.match(request.host)
redirect_to("#{request.protocol}www.#{request.host_with_port}",
:status => 301)
end
end
无法专门为rails找到文档4.最好的方法是什么?我希望foo.com/about
重定向到www.foo.com/about
答案 0 :(得分:1)
将#host_with_port
替换为#fullpath
,您将被设置。
before_filter :add_www_subdomain
def add_www_subdomain
unless /^www/.match(request.host)
redirect_to("#{request.protocol}www.#{request.fullpath}", status: 301)
end
end
答案 1 :(得分:0)
在应用程序控制器中完成设置:
private
def add_www_subdomain
unless request.host == 'www.foo.com'
redirect_to 'https://www.foo' + request.fullpath
end
end
并调用之前的过滤器:
before_filter :add_www_subdomain