301 Redirect Rails 4 总是去首页
301 Redirect Rails 4 always goes to home page
在我的 Rails 4 应用程序中,在应用程序控制器内部实现重定向。
我已经让它在主页上运行,所以 foo.com
将重定向到 www.foo.com
,但是,如果我输入 url 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
将 #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
最终在应用程序控制器中像这样设置它:
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
在我的 Rails 4 应用程序中,在应用程序控制器内部实现重定向。
我已经让它在主页上运行,所以 foo.com
将重定向到 www.foo.com
,但是,如果我输入 url 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
将 #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
最终在应用程序控制器中像这样设置它:
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