Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Node Express重定向不会重定向初始访问,但会重定向其他所有内容(F5,链接)_Node.js_Express_Redirect_Https - Fatal编程技术网

Node.js Node Express重定向不会重定向初始访问,但会重定向其他所有内容(F5,链接)

Node.js Node Express重定向不会重定向初始访问,但会重定向其他所有内容(F5,链接),node.js,express,redirect,https,Node.js,Express,Redirect,Https,我试图强制从HTTP重定向到HTTPS,并且几乎成功了。 在以下其他SO帖子中,我有以下代码: app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); next(); }); a

我试图强制从HTTP重定向到HTTPS,并且几乎成功了。 在以下其他SO帖子中,我有以下代码:

app.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});
app.use(function (req, res, next) {
    if (req.header('x-forwarded-proto') === 'http' && process.env.NODE_ENV === 'production') {
        console.log("redirecting to https : " + req.url);
        res.redirect(301, 'https://' + 'website.com' + req.url);
        return
    }
    next();
});
所有内容都被正确重定向,除了最初的点击,因此当客户端在浏览器栏中键入“website.com”时,他不会被重定向到HTTPS。
我无法找到发生这种情况的原因。

我仅使用此模块强制HTTPS重定向:

若要调试这是否是浏览器或服务器问题,请使用类似于
cURL
的工具查看服务器是否正确发出重定向。您需要确保服务于主页的路由是在重定向到HTTPS的中间件之后声明的。@robertklep使用curl时,URL的所有4个版本都返回200。我的提供者的URL重定向似乎有问题。是的,听起来不对。@robertklep我设法使用名为SSLIFY的节点模块强制使用HTTPS。现在唯一不起作用的是将来自裸体子域和“www”的谷歌分析流量结合起来。