ruby-on-rails - Rails - .htaccess 不强制用户使用 https

标签 ruby-on-rails .htaccess ruby-on-rails-4 ssl google-cloud-platform

我希望用户只能访问网站的 https 版本。我发现一种方法是使用 .htaccess 文件。我已经添加了 SSL 证书,一切正常。

我制作了 .htaccess 文件并在其中添加了以下代码(将“示例”替换为域名)

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

我部署了它并访问了http://example.com/它以 http 的形式加载得很好。

我不知道是否因为它是一个 Rails 应用程序,所以我可能需要将 .htaccess 文件放在公共(public)文件夹中,或者我是否需要做更多的事情。但据我所知,这应该可行。

我正在使用谷歌云平台来托管我的网站,但我找不到虚拟机服务器类型,所以它可能不是运行 .htaccess 文件的正确服务器类型?

我希望这里有人知道如何让它工作。

最佳答案

使用 .htaccess 尝试以下操作:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

但是,对于 Rails,您可以在环境配置中使用以下内容:

config.force_ssl = true

关于ruby-on-rails - Rails - .htaccess 不强制用户使用 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37339376/

相关文章:

ruby-on-rails - 在 OpenShift 中运行的 Redmine 中安装插件

Apache 2.2 htaccess 需要密码和 IP 地址

.htaccess - 规范 URL 不重定向

ruby-on-rails - 如何在 Rails 中异步执行 Controller.destroy 操作?

ruby-on-rails - ActiveAdmin + CanCanCan 错误与 : protected method `authorize!' called for <Every ActiveAdmin Controller>

ruby-on-rails - Rails 5错误: No route matches [DELETE] "/comments"

ruby-on-rails - 如何在 Rails 中启用日志记录?

javascript - AngularJS 模板未加载/渲染

ruby-on-rails - 使用 Redmine REST API 进行身份验证

.htaccess - 301 重定向 : match querystring, 不要将其附加到新重定向