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

ky6b79 · March 12, 2014 · Last by ky6b79 replied at March 12, 2014 · 3541 hits

考虑使用两个域名:

普通的内容页面希望是 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 的方法。

You need to Sign in before reply, if you don't have an account, please Sign up first.