API7 Docs
TransformationProxy Rewrite

Proxy Rewrite Configuration

Parameters

See plugin common configurations for configuration options available to all plugins.

  • uristring · optional

    New upstream URI path. Value could be a built-in variable.

  • methodstring · optional

    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_uriarray[string] · optional

    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_uriboolean · optional · default: false

    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.

  • hoststring · optional

    Set Host request header.

  • headersobject · optional

    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.

    • addobject · optional

      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, 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.

    • setobject · optional

      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, 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.

    • removearray[string] · optional

      Headers to remove from requests.

  • use_real_request_uri_unsafeboolean · optional · default: false

    If true, bypass URI normalization and allow for the full original request URI. Enabling this option is considered unsafe.