我有一个名为file.html
的HTML文件我希望只有在没有.html
扩展名的情况下才能提供该文件。
因此,如果有人请求此网页mydomain.com/file.html
,则不应该提供服务。但是,如果有人在没有mydomain.com/file
等扩展程序的情况下请求它,则应该提供服务。
我尝试了以下内容:
app.use(express.static(__dirname + '/public', {
extensions: ['html', 'htm']
}));
上述代码的问题在于,如果请求mydomain.com/file.html
快递中是否有办法允许html网页只在没有扩展名的情况下才会被提供?
答案 0 :(得分:1)
这是一个小型中间件,用于拒绝以.htm
或.html
结尾的所有路由,并且包含404.请务必在上面的代码中包含此内容以提供静态文件:
function forbidHTMLExtension(req, res, next) {
let url = req.url;
if (url.length < 4) return next();
if (url.slice(-4) === '.htm' || url.slice(-5) === '.html') {
return res.status(404).send();
}
next();
}
app.use(forbidHTMLExtension);