如何只为一个动作禁用force_ssl选项?

时间:2014-10-16 15:42:31

标签: ruby-on-rails

我们有

config.force_ssl = true

在生产环境中。

我想仅针对一个操作禁用此设置。 (基本上是一个链接)

我怎么样?我知道我可以在全球范围内关闭它,但这将是最后的选择。

2 个答案:

答案 0 :(得分:1)

您可以使用gem rack-ssl-enforcer并在生产配置文件中设置此配置行:

config.middleware.use Rack::SslEnforcer, except: '/webservice'

您可以通过要禁用SSL的链接替换/ webservice

答案 1 :(得分:0)

您还可以使用带有rack-ssl-enforcer的正则表达式来排除单个操作。

config.middleware.use Rack::SslEnforcer, :except => ['/foo', %r{/bar$}]

这将不包括www.example.com/foo和www.example.com/items/1/bar。如果您只想排除项目控制器的“条形”操作,而不排除其他操作,则此功能非常有用。