Я пытаюсь заблокировать определенные файлы на своем сайте от общедоступного доступа. Например, если вы перейдете на mysite.com/package.json вместо отображения его в браузере, я просто хочу отправить и отправить сообщение об ошибке или перенаправить обратно на мою домашнюю страницу или что-то еще. Я чувствую, что это должно быть легко ... но я не смог заставить что-нибудь работать. нет ничего сложного сайта, и он работает в довольно простой server.jsБлокирование доступа к статическому файлу в expressJS
var appRoot = __dirname,
express = require('express'),
chalk = require('chalk'),
mongoose = require('mongoose'),
bodyParser = require('body-parser'),
methodOverride = require('method-override'),
path = require('path'),
errorhandler = require('errorhandler'),
os = require('os'),
http = require('http'),
Routes;
// -----------------------------
// Configuration
// -----------------------------
var port, env, logs;
// Switch some vars based on the ENV
if(process.env.NODE_ENV === 'production'){
port = 3000;
env = 'production';
} else {
port = 8080;
env = 'development';
}
// Express Variables
var app = express();
var router = express.Router();
// Use static files in root
app.use(express.static(__dirname));
// API config
app.use(bodyParser.json());
app.use(methodOverride());
app.use(errorhandler({ dumpExceptions: true, showStack: true }));
// Database
mongoose.connect(mydb);
// Routes/API Config
Routes = require(appRoot + '/routes')(app, router, mongoose);
// After all routes don't match ie. refreshing a page, send index.html
app.get('/*', function(req, res) {
res.sendFile(__dirname + '/index-' + env + '.html');
});
app.listen(port);
Я надеялся сделать что-то вроде:
app.get('/package.json', function(){
res.end('Not allowed');
});
или даже до того как я пошлю его статический html index проверить, пытаются ли они получить доступ к ограниченному файлу. Любые предложения, ресурсы и т. Д. Приветствуются. Если вам нужна дополнительная информация, просто спросите.
Почему вы храните статические файлы в корне, а не какой-то 'общественного' каталог ? –
У меня есть статические файлы (которые мой сайт должен получить) в/assets & in/views. Мне не нужно ничего доступного в моем корне –