Создайте пользовательское промежуточное ПО static
, с помощью которого вы можете проверить путь (имя файла для этого случая).
Я попытаюсь объяснить с помощью комментариев в примере кода:
// path.join here makes it work cross platform with Windows / Linux / etc
var statics = express.static(path.join(__dirname, 'public'));
function secureStatic(pathsToSecure = []) {
return function (req, res, next) {
if (pathsToSecure.length === 0) {
return statics(req, res, next); // Do not secure, forward to static route
}
if (pathsToSecure.indexOf(req.path) > -1) {
return res.status(403).send('<h1>403 Forbidden</h1>'); // Stop request
}
return statics(req, res, next); // forward to static route
};
}
// add public files. List all "private" paths (file)
app.use(secureStatic(['admin.html'])); // instead of app.use(express.static('public'));
Но с этим промежуточным ПО никто не может запросить admin.html
файл через ваш express сервер.