ruby-on-rails - 如何根据域名有条件地强制使用 SSL?

标签 ruby-on-rails ssl https ruby-on-rails-4 routes

我的 Rails 应用程序有两个域名:app.example.com、short.net。较长的域是标准域,需要 HTTPS,较短的域是提供短 URL 的便利域,需要 HTTP。

目前我强制使用 SSL:

config.force_ssl = true

但我真的只想为较长的域名强制使用 SSL。如何根据域名有条件地强制使用 SSL?短域名将重定向到主域名,然后强制使用 SSL。这将避免短域名需要 SSL 证书。

想法?

最佳答案

向您的 ApplicationController 添加一些配置:

class ApplicationController < ActionController::Base
   force_ssl if: :ssl_required?

   [...]

   private
   def ssl_required?
     request.host == 'app.example.com'
   end
end

来源:http://api.rubyonrails.org/classes/ActionController/ForceSSL/ClassMethods.html

关于ruby-on-rails - 如何根据域名有条件地强制使用 SSL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22391548/

相关文章:

wcf - WCF 传输安全 SSL 问题

wordpress - 谷歌索引 https 而不是 http

ruby-on-rails - 停止使用破折号保存字符串数组

ruby-on-rails - Ruby:解析、替换和评估字符串公式

java - 调用 web 服务 : javax.net.ssl.SSLException:收到致命警报:protocol_version

java - 如何在 Java 和 C 中使用 GnuTLS

python - Windows 2019,Python 3.9.7,urllib,证书验证失败 : unable to get local issuer certificate (_ssl. c:1129)

ruby-on-rails - 模型的 Rails 灵活开放时间

ruby-on-rails - 将后台进程状态更新存储在文件中是否明智?

ssl - 没有证书的本地主机 ssl 套接字