gpt4 book ai didi

ruby-on-rails - 在 heroku 中将 force_ssl 设置为 false 后如何删除无限重定向循环?

转载 作者:太空宇宙 更新时间:2023-11-03 13:18:48 28 4
gpt4 key购买 nike

我正在开发一个 Rails 3.1.0 应用程序,它需要根据用户在某些页面中使用 ssl。

我在 config/enviroments/staging.rb 中将 config.force_ssl 设置为 false。添加了一个决定是否重定向到 http 的前置过滤器。如果我清理缓存,重定向在开发中有效。

事情在暂存中,它会导致重定向循环。我相信 force_ssl 使用永久重定向,因此当 DNS 询问我的应用程序中的页面时,它仍然会尝试使用 ssl 重定向到该页面。这有意义吗?

我有哪些选择?

编辑

我清理了缓存。这只解决了我第一次进入页面时的问题。假设我刷新所有缓存并进入 http 页面。这将显示 http 页面。当我退出该页面,进入另一个有 ssl 的页面并尝试返回到 http 页面时,无限重定向再次开始。

我实现的解决方案是重定向到不安全的子域。让我们称之为“不安全”。所以当我需要重定向到一个http页面时,我重定向到http://unsafe.mydomain.com .这解决了无限重定向,但是一些 https 页面仍然被缓存。

我想真正的问题是什么时候使用 :status => :moved_permanently 有用,因为它似乎会导致页面缓存并且清理此缓存变得困难?

最佳答案

首先,为什么不对所有页面强制使用 SSL?性能开销非常小,但在混合模式下运行时,如果不小心,可能会泄露您认为安全的 cookie。无处不在的 SSL :)

现在回答你的问题,我怀疑这与 DNS 有任何关系,更可能与模式匹配逻辑的正则表达式有关,它应该重定向。它是否包括主机名/域?如果是,它是否与您在暂存中运行的域相匹配?

关于ruby-on-rails - 在 heroku 中将 force_ssl 设置为 false 后如何删除无限重定向循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10420976/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com