Nodo equivalente a este .htaccess

¿Es posible construir un código como este en node.js ?

     RewriteEngine on    RewriteCond% {REQUEST_URI}! / (View) / [NC]    RewriteCond% {REQUEST_FILENAME}!-F    RewriteRule ^ (. *) $ Index.html [L, QSA]  

url mostrar una ruta no es “ver” y además el archivo no existe, escriba index.html .

usando algo como express o connect

ACTUALIZACIÓN: Necesito una expresión regular para !/(view)/ en ruta para express en node.js

Has probado:

  1. Servir estatica
  2. Capturar / ver URL
  3. Atrapar todo lo demas

     app.configure(function(){ app.use(express.static(__dirname+'/public')); // Catch static files app.use(app.routes); }); // Catch /view and do whatever you like app.all('/view', function(req, res) { }); // Catch everything else and redirect to /index.html // Of course you could send the file's content with fs.readFile to avoid // using redirects app.all('*', function(req, res) { res.redirect('/index.html'); }); 

O

  1. Servir estatica
  2. Compruebe si la URL es / ver

     app.configure(function(){ app.use(express.static(__dirname+'/public')); // Catch static files app.use(function(req, res, next) { if (req.url == '/view') { next(); } else { res.redirect('/index.html'); } }); }); 

O

  1. Atrapa las estadísticas como de costumbre.
  2. Coger NO / ver

     app.configure(function(){ app.use(express.static(__dirname+'/public')); // Catch static files app.use(app.routes); }); app.get(/^(?!\/view$).*$/, function(req, res) { res.redirect('/index.html'); }); 

La estructura finalmente es:

 var express = require('express'), url = require('url'); var app = express(); app.use(function(req, res, next) { console.log('%s %s', req.method, req.url); next(); }); app.configure(function() { var pub_dir = __dirname + '/public'; app.set('port', process.env.PORT || 8080); app.engine('.html', require('ejs').__express); app.set('views', __dirname + '/views'); app.set('view engine', 'html'); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser()); app.use(express.static(pub_dir)); app.use(app.router); }); app.get('/*', function(req, res) { if (req.xhr) { var pathname = url.parse(req.url).pathname; res.sendfile('index.html', {root: __dirname + '/public' + pathname}); } else { res.render('index'); } }); app.listen(app.get('port')); 

gracias a todos. PD: render html con ejs módulo

    Intereting Posts