您好我想让https成为我网站的默认路线。
我有以下代码来实现这一目标
if (app.get('env') === 'production') {
app.use (function (req, res, next) {
if (!req.secure){
// request was via http, so redirect to https
res.redirect('https://' + req.headers.host + req.url);
}
});
}
之后我有多条路线,比如
app.use(express.static(path.join(__dirname, 'public')));
app.use("/de", express.static(__dirname + "/public"));
app.use("/de/home", express.static(__dirname + "/public"));
如果我不使用https的重定向,一切正常。我的重定向错误在哪里?
答案 0 :(得分:0)
您应该将组件转换为编码的URI组件
if (app.get('env') === 'production') {
app.use (function (req, res, next) {
if (!req.secure){
// request was via http, so redirect to https
res.redirect('https://' + encodeURIComponent(req.headers.host) + encodeURIComponent(req.url));
}
});
}
这应该工作得很好,我希望这有帮助