UNPKG

connect-modrewrite

Version:

connect-modrewrite adds modrewrite functionality to connect/express server

96 lines (70 loc) 2.9 kB
connect-modrewrite [![Build Status](https://travis-ci.org/tinganho/connect-modrewrite.png)](https://travis-ci.org/tinganho/connect-modrewrite) ======================== [![NPM](https://nodei.co/npm/connect-modrewrite.png?downloads=true&stars=true)](https://nodei.co/npm/connect-modrewrite/) `connect-modrewrite` adds modrewrite functionality to connect/express server. # Getting started Install `connect-modrewrite` with: ```bash npm install connect-modrewrite --save ``` Require it: ```javascript var modRewrite = require('connect-modrewrite'); ``` An example configuration: ```javascript var app = connect() // express() for express 3.x server // app.configure(function() { for express 3.x 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 3.x 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` ## Dash A dash indicates that no substitution should be performed. `^/blog/(.*) - [L]` ## Flags ### Last [L] If a path matches, any subsequent rewrite rules will be disregarded. ### Proxy [P] Proxy your requests ```javasript '^/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. ### Host [H], \[H=*\] (replace * with a regular expression that match a hostname) Match on host. 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][] ## License Licensed under the MIT license. ## Other recommended projects ### L10ns [L10ns][] is an internationalization workflow and formatting tool. It handles complex localization problems like pluralization, genus based formatting etc. It also provides a workflow similar to XGettext. [@tingan87]: https://twitter.com/tingan87 [L10ns]: http://l10ns.org