【发布时间】:2015-06-20 21:15:02
【问题描述】:
在我的 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
【问题讨论】:
-
在应用程序级别执行这种规范的域名重定向有点不寻常。如果您的应用程序前面有一个服务器,例如 Apache 或 nginx,您可以在那里进行重定向。这也可以通过 DNS 记录来处理 - 检查 CNAME 记录。
-
按照我的方式做这件事有什么并发症吗?我使用 DNSimple,但是,当我使用 https 时它们无法重定向
-
似乎应该可以正常工作。绝对比在较早的层(例如 nginx、DNS)中捕获它要慢一些,但这对于这种重定向来说根本不是什么大问题。只是想在您采用这种方式之前我会提出这一点:-)
-
太棒了,非常感谢。
标签: ruby-on-rails ruby ruby-on-rails-4 redirect controller