gpt4 book ai didi

node.js - 重定向非 www 和 http - NodeJS 和 Express

转载 作者:太空宇宙 更新时间:2023-11-03 22:57:50 25 4
gpt4 key购买 nike

我正在尝试在 Node JS/Express 应用程序中将非 www 网址重定向到 www。

以下代码片段成功执行 301 重定向

function checkUrl(req, res, next) {
let host = req.headers.host;
if (host.match(/^www\..*/i)) {
next();
} else {
res.redirect(301, "https://www." + host + req.url);
}
}

我就是这样使用的

app.all('*', checkUrl);

它不包括 httphttps。我可以用它自己的函数来做到这一点

function ensureSecure(req, res, next) {
if (req.headers['x-forwarded-proto'] === 'https') {
return next();
}
return res.redirect('https://' + req.hostname + req.url);
}

如何将两者结合起来,以便涵盖这两种情况

最佳答案

使用express,您可以使用app.use在每个请求上运行中间件。

因此,结合您已经取得的成就,您将得到:

function checkUrl(req, res, next) {
let host = req.headers.host;

if (!host.match(/^www\..*/i))
{
return res.redirect(301, "https://www." + host + req.url);
}
else if (req.headers['x-forwarded-proto'] !== 'https')
{
return res.redirect('https://' + req.hostname + req.url);
}
next();
}

app.use(checkUrl);

关于node.js - 重定向非 www 和 http - NodeJS 和 Express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55359959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com