人们,我已经连续两天绞尽脑汁了,这是我的情况:
我的问题是 - 我想强制用户使用Https,即使他们没有在网址栏中输入Https - 我已经尝试设置路由器,以便将不安全的请求重定向到https -ed网址,但无济于事(所有答案都在SO上找到)......
非常感谢有人设法做到这一点的任何输入。
答案 0 :(得分:0)
你可以这样做。只需检查请求环境变量中是否有“http”并手动指向。这是我的python代码示例。
if request.environ['HTTP_X_FORWARDED_PROTO'] == 'http':
Then redirect
答案 1 :(得分:0)
最后,我使用了express-sslify。
之后,我通过以下方式实现了我的版本,因为Openshift提供了一个Web负载均衡器,当您想要重定向不安全的请求时,这是一种特殊情况 (如express-sslify文档中所述) !) 强>
希望这个答案也可以帮助其他人 - 下面的解决方案代码:
var enforce = require('express-sslify');
if (config.env === 'production' && config.isStaging === 'false') {
// Enforce HTTPs connections only
app.use(enforce.HTTPS({ trustProtoHeader: true }));
};