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 HTTP request method to a rule. method is equal to "*" by default, and will match any HTTP method. It will then try to match the path to one rule. If no rule matches, 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 rewritten.
Parameters: |
|
---|