Javascript 如何限制用户访问ExpressJS/NodeJS中的静态html文件?
是否有任何方法可以检测用户的请求URL并重新路由到特定的错误页面,例如, 我希望所有到任何HTML文件(*.HTML)的路由都能检测到它,并希望它被重新路由到错误页面。也可以对用户隐藏以查看它 注意:使用Express 4和最新的Node.JS版本Javascript 如何限制用户访问ExpressJS/NodeJS中的静态html文件?,javascript,html,node.js,express,url-routing,Javascript,Html,Node.js,Express,Url Routing,是否有任何方法可以检测用户的请求URL并重新路由到特定的错误页面,例如, 我希望所有到任何HTML文件(*.HTML)的路由都能检测到它,并希望它被重新路由到错误页面。也可以对用户隐藏以查看它 注意:使用Express 4和最新的Node.JS版本 app.get('/', function(req,res){ if(req.is('text/html') == true){ res.redirect('/login'); } 这似乎不起作用,我想我缺少get请
app.get('/', function(req,res){
if(req.is('text/html') == true){
res.redirect('/login');
}
这似乎不起作用,我想我缺少get请求中的参数
请导游。提前谢谢 假设您的url中有文本
html
,在这种情况下,您希望将其路由到登录
。请尝试以下操作:
app.use(function (req, res, next) {
if ((req.path.indexOf('html') >= 0)) {
res.redirect('/login');
}
});
它检查你的url路径,如果它检测到
html
,它将重定向到登录
,只需将你的代码片段放在你的应用程序之前。使用(express.static(…)代码>应该可以。如果你不想让别人访问这些文件,那么你为什么要在静态路径下托管这些文件?@Quentin那么我应该把它们放在哪里?@Chinya_DotA-你可以删除它们。(当你不知道文件的用途时,很难给出一个有用的建议放在哪里,你只告诉我们它们不用于什么)。那么HTML文件实际上是模板文件?创建一个模板目录并将它们保存在那里。或者在路由中使用正则表达式:app.use(/html$/,function…)