URL rewrite middleware for express
Last updated 3 months ago by kapouer .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install express-urlrewrite 
SYNC missed versions from official npm registry.


URL rewrite middleware for express.


Rewrite using a regular expression, rewriting /i123 to /items/123.

app.use(rewrite(/^\/i(\w+)/, '/items/$1'));

Rewrite using route parameters, references may be named or numeric. For example rewrite / to /commits/foo/to/bar:

app.use(rewrite('/:src..:dst', '/commits/$1/to/$2'));
app.use(rewrite('/:src..:dst', '/commits/:src/to/:dst'));

You may also use the wildcard * to soak up several segments, for example /js/vendor/jquery.js would become /public/assets/js/vendor/jquery.js:

app.use(rewrite('/js/*', '/public/assets/js/$1'));

In the above examples, the original query string (if any) is left untouched. The regular expression is applied to the full url, so the query string can be modified as well:

app.use(rewrite('/file\\?param=:param', '/file/:param'))

The query string delimiter (?) must be escaped for the regular expression to work.

New in version 1.1

app.use(rewrite('/path', '/anotherpath?param=some'))

now updates req.query, so req.query.param == 'some'.

New in version 1.2

rewrite can be used as a route middleware as in

app.get('/route/:var', rewrite('/rewritten/:var'));

app.get('/rewritten/:var', someMw);

Instead of passing control to next middleware, it passes control to next route.


Set environment variable DEBUG=express-urlrewrite

Current Tags

  • 1.3.0                                ...           latest (3 months ago)

4 Versions

  • 1.3.0                                ...           3 months ago
  • 1.2.0                                ...           6 years ago
  • 1.1.0                                ...           6 years ago
  • 1.0.0                                ...           6 years ago

Copyright 2014 - 2017 © |