Rails 请问怎样让 http 的 request 直接重定向到 https?

kevinclcn · 2015年02月12日 · 最后由 tylerlong 回复于 2015年02月14日 · 2239 次阅读

我用 thin 启动 rails 应用程序,命令如下:

thin start --ssl

rails 确实支持 https 访问了,但是用 http 访问报 No data received 的错误。无论我怎样配置 force_ssl,还是 before_action,都没用。http request 都不能进入 before_action.

Rails 的版本 4.2 Thin 的版本 1.6.3

#1 楼 @huacnlee 是不是说如果没有反向代理,只靠 thin 没办法做到自动 https 的重定向?

搜索 Nginx rewrite

生产环境几乎肯定要 Nginx(或者 Apache),在 Nginx 配置 http 重定向 https 可行。大致应该是这样:

server {
    listen 80;
    server_name domain.com;
    return 301 https://domain.com$request_uri;
}

如果是开发环境,个人觉得没必要折腾 https,就直接用 http 挺好的。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号