0
我試圖阻止我網站中的某些文件被公開訪問。例如,如果你去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索引檢查他們是否試圖訪問受限制的文件。任何建議,資源等歡迎。如果您需要更多的信息,只需詢問。基於
爲什麼你存儲靜態文件的根,而不是一些 '公共' 目錄? –
我在/ assets&in/views中有靜態文件(我的網站需要訪問)。我不需要訪問我的任何其他東西 –