无法访问 127.0.0.1 或任何其他 ip,本地主机有效

Can't access 127.0.0.1 or any other ip, localhost works

我正在使用 Nodejs 和 Expressjs。

当我尝试通过 http://www.localhost:3000/ 访问我的应用程序时,应用程序加载得很好。但是如果我尝试任何其他环回 IP(127.0.0.1/我的 PC 名称/我的 PC IP)我得到:

Request URL:http://127.0.0.1:3000/ Request Method:GET Status Code:301 Moved Permanently

然后:

GET http://www.127.0.0.1:3000/ net::ERR_NAME_NOT_RESOLVED

我正在使用 windows 7.

经过大量网络搜索后我尝试过的方法:

  1. 正在编辑主机文件,添加:

    127.0.0.1 本地主机

    ::1 本地主机

  2. 禁用windows防火墙

  3. 明确告诉 express 监听所有 IP:(有或没有 '0.0.0.0')

    app.listen(3000, "0.0.0.0", function() {
      console.log("listen on 3000"); 
    });
    
  4. 不同端口(8080、8081等)

  5. 有 http:// 没有或任何其他变体。

此外,如果我 运行 Wamp 服务器的实例(例如访问 phpmyadmin),一切都很好。 (本地主机、127.0.0.1 等端口 80)

尝试用 0.0.0.0 替换 localhost

从 IP 地址中删除 www,它应该可以工作。

问题是我使用以下行添加了从 none www 到 www 的重定向:

// non-www to www redirect
app.get('/*', function (req, res, next) {
    if (req.headers.host.match(/^www/) === null) {
        res.redirect(301, 'http://www.' + req.headers.host + req.url);
    } else {
        next();
    }
});

它也影响了 127.0.0.1,为开发删除它解决了问题。