当我运行一个新的node.js应用程序(调用此应用程序2)时,发生了一些奇怪的事情(阅读:我不理解的事情):我在处理另一个应用程序后尝试运行应用程序2 (app1)白天早些时候。对于以前的应用程序,我在代码中有一些东西自动将localhost:3000重定向到特定站点。我当天早些时候停止运行该应用程序。
当我尝试运行同时使用端口3000和localhost的新app2时,即使之前重定向的应用程序没有运行,它仍会自动重定向。
app1正在使用express.js。 app2不是。如果有人认为任何特定的代码会有所帮助,我会非常乐意提供,但我不知道在哪里看,因为我似乎有标准代码只会重定向localhost:3000并且代码是重定向了一些其他通用网站。 facebook.com在我的主机文件中编辑,转到我的localhost ip地址。 以下是其中一些内容:
app.get('*',function(req,res){
console.log(req.get('host')+req.originalUrl);
if(req.get('host')+req.originalUrl == "facebook.com:3000/"){
res.redirect(301,'https://github.com');
}
else{
res.redirect(301,'https://google');
}
});
...
app.listen(app.get('port'), function() {
console.log("✔ Express server listening on port %d in %s mode", app.get('port'), app.settings.env);
});
因此,在运行新应用时,我被吓坏了为什么它仍会重定向。
此外,当我更改新应用中的代码以重定向到端口4000时,localhost:3000仅适用于我的新应用,然后在使用4000后将其更改回3000.
如果有人知道为什么会这样,请告诉我!
感谢。
答案 0 :(得分:1)
您正在进行301重定向。这是永久重定向。浏览器,代理和其他所有内容都可以无限期地缓存它。
考虑302或307。