我的邮件程序发送了一个帐户激活链接,如下所示:
edit_account_activation_url(@ user.activation_token,email:@ user.email)
制造
http://MYAPPHOST/account_activation/7Apxg0G5t2V5tHrO2tatPQ/edit?email=sdf%40oiu.com
当我将其更改为https时可以正常工作,但它不会被重定向。我已经有config.force_ssl = true所以我不确定如何启用此重定向。任何帮助表示赞赏。
每当我转到http://MYAPP时,我都会被重定向到about:blank
答案 0 :(得分:2)
我假设这是在您的生产环境中?您使用的是哪个托管服务提供商和/或服务器(Heroku,AWS和Apache,NGINX等)。
检查您的网络服务器的SSL设置,尤其是X-Forwarded-Proto
标头。当HTTPS请求到达Apache / NGINX时,它们将终止SSL连接并向Unicorn / Puma / Thin / Webrick发送HTTP请求。除非您设置protocol=HTTP
标头,否则您的Rails服务器将看到X-Forwarded-Proto
。这将导致x_y_z_url
帮助者返回http://...
而不是https://...
。
例如,在NGINX中:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;