connect-modrewrite

connect-modrewrite adds modrewrite functionality to connect/express server

npm install connect-modrewrite
52 downloads in the last day
1 338 downloads in the last week
5 318 downloads in the last month

connect-modrewrite Build Status

NPM

connect-modrewrite adds modrewrite functionality to connect/express server.

Getting started

Install connect-modrewrite with:

npm install connect-modrewrite --save

Require it:

var modRewrite = require('connect-modrewrite');

An example configuration:

var app = connect() // express() for express server
// app.configure(function() { for express server
  .use(modRewrite([
    '^/test$ /index.html',
    '^/test/\\d*$ /index.html [L]',
    '^/test/\\d*/\\d*$ /flag.html [L]'
  ]))
  .use(connect.static(options.base))
  .listen(3000)
// }) for express server

Configurations

In the example above, modRewrite take as an Array of rewrite rules as an argument. Each rewrite rule is a string with the syntax: MATCHING_PATHS REPLACE_WITH [FLAGS]. MATCHING_PATHS should be defined using a regex string. And that string is passed as an argument to the javascript RegExp Object for matching of paths. REPLACE_WITH is the replacement string for matching paths. Flags is optional and is defined using hard brackets.

Inverted URL matching

Begin with ! for inverted URL matching.

Use defined params

Just wrap the defined param with () and access it with $n. This is defined in JS .replace in https://developer.mozilla.org/en/docs/JavaScript/Reference/Global_Objects/String/replace

^/blog/(.*) /$1

Flags

Last [L]

If a path matches, any subsequent rewrite rules will be disregarded.

Proxy [P]

Proxy your requests

'^/test/proxy/(.*)$ http://nodejs.org/$1 [P]'

Redirect [R], [R=3*] (replace with numbers)

Issue a redirect for request.

Nocase [NC]

Regex match will be case-insensitive.

Forbidden [F]

Gives a HTTP 403 forbidden response.

Gone [G]

Gives a HTTP 410 gone response.

Type [T=] (replace with mime-type)

Sets content-type to the specified one.

For more info about available flags, please go to the Apache page: http://httpd.apache.org/docs/current/rewrite/flags.html

Authors

Tingan Ho, tingan87[at]gmail.com

License

Copyright (c) 2012 Tingan Ho Licensed under the MIT license.

Bitdeli Badge

npm loves you