[英]ERR_TOO_MANY_REDIRECTS after calling res.redirect
我有以下代碼將 http 流量重定向到 https 但它給出了 ERR_TOO_MANY_REDIRECTS
任何原因? 我們如何在 node.js 中修復它?
module.exports = [
'/',
(req, res, next) => {
if (req.hostname !== 'localhost' && req.protocol === 'http') {
let url = 'https://' + req.headers.host + req.url;
res.redirect(url);
} else {
next();
}
},
];
注意:對於服務器上的 https 請求,req.protocol 的值始終返回 http。
我打了 https url 並檢查了 req.protocol 值,它是 http
你可以嘗試調試它,了解以下內容:
而不是使用 Nodejs 代碼將 HTTP 流量重定向到 HTTPS。 我希望您直接在您的網絡服務器Apache或Nginx中配置重定向,如果您的服務器上沒有Apache或Nginx訪問權限,您也可以使用 Cloudflare。 而且您還面臨這個問題,因為您可能會多次重定向訪問者。 例如,我認為您已經在通過網絡服務器重定向流量,並且在您再次通過代碼重定向之后。 所以,我希望你刪除這個中間件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.