问题描述
我有一个带有此路由的 NodeJS 服务器:
require('log-timestamp');
router.get('/home',async (req,res) => {
console.log(req.originalUrl," :: ",req.get('User-Agent'));
console.log("Home: /home");
res.render('home');
});
router.get("//home",(req,res) => {
console.log("Buggy: //home");
res.redirect("/home");
});
router.get("/",req.get('User-Agent'));
console.log("Here: /");
res.redirect("/home");
});
行为因用户代理而异。如果我在 Whatsapp 上共享网站的根目录,日志显示 NodeJS 复合路由并使它们相对于前一个(/
,然后 //home
,然后 //home/home
,然后 { {1}}):
[2020-12-19T13:18:51.159Z] / :: WhatsApp/2.2049.10 N [2020-12-19T13:18:51.161Z] Here: / GET / 302 7.251 ms - 27 [2020-12-19T13:18:51.412Z] Buggy: //home GET //home 302 1.731 ms - 27 [2020-12-19T13:18:51.656Z] //home/home :: WhatsApp/2.2049.10 N GET //home/home 404 435.474 ms - 6592 GET /images/logo_400x400_whatsapp_shared_image_EN.png 200 2.909 ms - 36671
如果我在浏览器中打开网站的根目录,日志会显示
日志显示 NodeJS 使用相对于站点根目录的每个路由(404
,然后是 /
):
[2020-12-19T13:22:12.745Z] / :: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:84.0) Gecko/20100101 Firefox/84.0 [2020-12-19T13:22:12.746Z] Here: / GET / 302 1.476 ms - 54 [2020-12-19T13:22:12.893Z] /home :: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:84.0) Gecko/20100101 Firefox/84.0 [2020-12-19T13:22:12.927Z] Home: /home
该行为并不重要,因为 Whatsapp 只需要共享图片,而 404 页面确实包含该图片。
为什么会这样?我该如何解决?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)