在网站上工作时,我试图将用户重新路由到维护页面,但是由于某些原因,只有在浏览器中除了基本URL之外,我才进行其他操作。例如:在客户端上,如果我转到http://example.com/
,它将加载页面,但是如果我转到http://example.com/somewhere-else
,它将正确地重新路由到维护页面。如何侦听和捕获所有HTTP请求(无论路径如何),并正确路由它们? xxx.xxx.xxx.xxx
代表我的IP地址。我已经在计算机和手机上测试了此功能,并且已关闭wifi(使用蜂窝网络)。
const express = require('express');
const path = require('path');
const app = express();
app.use(express.static(path.join(__dirname, 'build')));
app.get('/ping', function (req, res) {
return res.send('pong');
});
app.get('*', function (req, res) {
var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
if (ip.substr(0, 7) == "::ffff:") {
ip = ip.substr(7)
}
if (ip == "xxx.xxx.xxx.xxx") {
res.sendFile(path.resolve(__dirname, 'build', 'index.html'));
}
else {
res.sendFile(path.resolve(__dirname, 'build', 'construction.html'));
}
});
app.listen(process.env.PORT || 80);
答案 0 :(得分:0)
请更改以下内容
app.get('*' to app.get('/'
然后,它将所有默认调用重定向到维护页面。