Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 强制ssl/强制返回http。什么';这是最好的办法吗?_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 强制ssl/强制返回http。什么';这是最好的办法吗?

Ruby on rails 强制ssl/强制返回http。什么';这是最好的办法吗?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我正在用户和会话控制器中使用force_ssl。这很有效。当我在这些控制器中执行操作时,我的浏览器将重定向到https。问题是,在用户被重定向到https后,他们的浏览器至少在使用相对URL时会继续使用https。我希望用户对应用程序中的其他页面使用http。我提出了3种可能的策略来引导用户返回http进行其他页面 使用绝对URL而不是相对URL。使用这种策略,我避免使用诸如root\u路径之类的东西,而是使用root\u url。我可以在应用程序控制器中设置默认的\u url\u选项以使用ht

我正在用户和会话控制器中使用force_ssl。这很有效。当我在这些控制器中执行操作时,我的浏览器将重定向到https。问题是,在用户被重定向到https后,他们的浏览器至少在使用相对URL时会继续使用https。我希望用户对应用程序中的其他页面使用http。我提出了3种可能的策略来引导用户返回http进行其他页面

  • 使用绝对URL而不是相对URL。使用这种策略,我避免使用诸如root\u路径之类的东西,而是使用root\u url。我可以在应用程序控制器中设置默认的\u url\u选项以使用http协议。这样,我的应用程序中的所有链接都将尝试引导用户返回http。他们总是可以在浏览器中手动切换到https,但我真的不在乎他们是否这样做

  • 编写一个类似于的before过滤器。我真的不喜欢这样,因为我必须重复我在应用程序控制器中强制ssl的控制器/操作,以及我在其中使用force_ssl的特定控制器

  • 使用这个插件。这个插件看起来不错,因为默认情况下,如果我什么都不说,它将强制使用http。强制使用ssl似乎与include force_ssl方法非常相似。这似乎是一个很好的解决方案,但如果没有插件的话,我不想依赖插件

  • 我无法决定这3个选项中哪一个是最好的,我正在寻求指导。我也是Rails新手,所以如果这些解决方案中有任何一个“不好”,请让我知道。此外,如果有其他选择,我不知道,请让我知道


    哪种解决方案最好?(Rails 3.2)

    插件是最好的。该插件的源代码与您的要点中的代码非常相似。事实上,如果你不喜欢这个插件,你真正需要的就是这里的部分:

    您可以根据您的应用程序_controller.rb对其进行调整,或者完全使用插件

    干杯