Rails Rails 使用 SSL 后,如何指定 Controller 只能通过 https 方式请求

ky6b79 · 2014年03月12日 · 最后由 ky6b79 回复于 2014年03月12日 · 3541 次阅读

考虑使用两个域名:

普通的内容页面希望是 http 方式。但是,登录、修改密码等喜欢是 https。

比较笨的办法就是,修改所有的链接全部为完整 url,分别指定是 http 还是 https。感觉这样维护起来很头痛。

请问一下有没有比较好的解决办法?

class YourController < ApplicationController

  before_action :ssl_required, only: [:actions :require :ssl]

  # ......

  protected

    def ssl_required
      if Rails.env == 'production' && !request.ssl?
      flash.keep
      redirect_to protocol: 'https://'
    end
end

Oh 你的 ssl 子域名不一样,那就字符串处理一下,应该很容易改,自己查一下文档就好了。

#2 楼 @blacktulip 谢谢。明白了。看来还需要增加一个 ssl_not_required 的方法。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号