Rewrites the specified path by rules defined in the specified design document.
The rewrite rules are defined in array field of the design document called rewrites. Each rule is an object with next structure:
The to``and ``from paths may contains string patterns with leading : or * characters.
For example: /somepath/:var/*
The pattern matching is done by first matching the request method to a rule. By default all methods match a rule. (method is equal to "*" by default). Then It will try to match the path to one rule. If no rule match, then a 404 Not Found response returned.
Once a rule is found we rewrite the request url using the to and query fields. The identified token are matched to the rule and will replace var. If '*' is found in the rule it will contain the remaining part if it exists.
Examples:
Rule | Url | Rewrite to | Tokens |
---|---|---|---|
{“from”: “/a”, “to”: “/some”} | /a | /some | |
{“from”: “/a/*”, “to”: “/some/*} | /a/b/c | /some/b/c | |
{“from”: “/a/b”, “to”: “/some”} | /a/b?k=v | /some?k=v | k=v |
{“from”: “/a/b”, “to”: “/some/:var”} | /a/b | /some/b?var=b | var=b |
{“from”: “/a/:foo/”, “to”: “/some/:foo/”} | /a/b/c | /some/b/c?foo=b | foo=b |
{“from”: “/a/:foo”, “to”: “/some”, “query”: { “k”: ”:foo” }} | /a/b | /some/?k=b&foo=b | foo=b |
{“from”: “/a”, “to”: “/some/:foo”} | /a?foo=b | /some/?b&foo=b | foo=b |
Request method, header, query parameters, request payload and response body are depended on endpoint to which url will be rewrited.
Parameters: |
|
---|