【问题标题】:Rails - Redirect to Subdomain for 1 Page OnlyRails - 仅重定向到 1 页的子域
【发布时间】:2014-02-24 21:53:38
【问题描述】:

我正在尝试使用 Rails 4 路由仅针对一个页面(购物车)重定向到特定子域(“安全”)。 (我需要这样做的原因是 SSL 证书仅在安全子域上可用。)目前,我有以下内容:

  get '/cart' => redirect { |p, req| req.url.sub('http:// site.com', 'http://secure.site.com') }, :constraints => { :host => 'site.com' }

这可行,但是当我希望它默认返回根域(site.com;无 www)时,用户单击的每个后续链接都会保留安全子域。

实现这一目标的最佳方法是什么?

【问题讨论】:

    标签: ruby-on-rails redirect routing


    【解决方案1】:

    原因是通常所有的链接href属性都是相对路径,所以是'/controller/action',而不是'http://example.com/controller/action'。相对路径意味着假定相同的(子)域。

    您可以将所有链接更改为使用 _url 而不是 _path,但我建议不要这样做。

    相反,我建议编写一个机架中间件并根据完整路径在那里进行重定向,或者在应用程序服务器(nginx、apache 等)配置级别进行处理。

    或者更好的是,你为什么不把所有的链接都放在 https 下?听起来对我来说是最好的方法:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 2019-03-03
      相关资源
      最近更新 更多