Proxy Rewrite Configuration
Configuration reference for the Proxy Rewrite plugin (`proxy-rewrite`): the parameters, each attribute with its type, whether it is required, its default and its accepted values.
Parameters
See plugin common configurations (opens in Apache APISIX docs) for configuration options available to all plugins.
uri — string · optional · since APISIX 1.2 · API7 Gateway 3.5.0
New upstream URI path. Value could be a built-in variable (opens in Apache APISIX docs).
method — string · optional · since APISIX 2.10.5 · API7 Gateway 3.5.0
Valid values: GET, POST, PUT, HEAD, DELETE, OPTIONS, MKCOL, COPY, MOVE, PROPFIND, LOCK, UNLOCK, PATCH, or TRACE
HTTP method to rewrite requests to use.
regex_uri — array[string] · optional · since APISIX 1.2 · API7 Gateway 3.5.0
Regular expressions used to match the URI path from client requests and compose a new upstream URI path. When both uri and regex_uri are configured, uri has a higher priority.
Provide one or more pairs in a flat array. Odd-positioned elements are the match pattern and even-positioned elements are the replacement. The plugin evaluates pairs in order and applies the first match.
For example, with ["^/test/(.*)/(.*)", "/$1-$2", "^/other/(.*)", "/other"], a request to /test/user/agent is rewritten to /user-agent, and a request to /other/hello is rewritten to /other.
set_ngx_uri — boolean · optional · default: false · since API7 Gateway 3.5.2
The parameter is currently only available in API7 Enterprise and will be updated to APISIX soon.
If false, the value of ngx.var.uri will remain unchanged, preserving the original route uri. If true, ngx.var.uri will be updated to the uri value specified in proxy-rewrite.
host — string · optional · since APISIX 1.2 · API7 Gateway 3.5.0
Set Host request header.
headers — object · optional · since APISIX 1.2 · API7 Gateway 3.5.0
Header actions to be executed. Can be set to objects of action verbs add, remove, and/or set; or an object consisting of headers to be set.
When multiple action verbs are configured, actions are executed in the order of add, remove, and set.
add — object · optional · since APISIX 3.1.0 · API7 Gateway 3.5.0
Headers to append to requests. If a header is already present in the request, the header value will be appended. Header value could be set to a constant, one or more built-in variables (opens in Apache APISIX docs), or the matched result of regex_uri using variables such as $1-$2-$3.
A header value can also be an array. Each value is resolved independently and appended as a separate header line in array order. Introduced in API7 Enterprise 3.9.17 and 3.10.4, and APISIX 3.18.0.
set — object · optional · since APISIX 3.1.0 · API7 Gateway 3.5.0
Headers to set to requests. If a header is already present in the request, the header value will be overwritten. Header value could be set to a constant, one or more built-in variables (opens in Apache APISIX docs), or the matched result of regex_uri using variables such as $1-$2-$3.
A header value can also be an array. Each value is resolved independently, and the array replaces any existing value with separate header lines in array order. Introduced in API7 Enterprise 3.9.17 and 3.10.4, and APISIX 3.18.0.
Should not be used to set Host.
remove — array[string] · optional · since APISIX 3.1.0 · API7 Gateway 3.5.0
Headers to remove from requests.
use_real_request_uri_unsafe — boolean · optional · default: false · since APISIX 2.15.0 · API7 Gateway 3.5.0
If true, bypass URI normalization and allow for the full original request URI. Enabling this option is considered unsafe.