• ReplacePathRegex
    • Configuration Examples
    • Configuration Options
      • General
      • regex
      • replacement

    ReplacePathRegex

    Updating the Path Before Forwarding the Request (Using a Regex)

    The ReplaceRegex replace a path from an url to another with regex matching and replacement.

    Configuration Examples

    1. # Replace path with regex
    2. labels:
    3. - "traefik.http.middlewares.test-replacepathregex.replacepathregex.regex=^/foo/(.*)"
    4. - "traefik.http.middlewares.test-replacepathregex.replacepathregex.replacement=/bar/$1"
    1. # Replace path with regex
    2. apiVersion: traefik.containo.us/v1alpha1
    3. kind: Middleware
    4. metadata:
    5. name: test-replacepathregex
    6. spec:
    7. replacePathRegex:
    8. regex: ^/foo/(.*)
    9. replacement: /bar/$1
    1. "labels": {
    2. "traefik.http.middlewares.test-replacepathregex.replacepathregex.regex": "^/foo/(.*)",
    3. "traefik.http.middlewares.test-replacepathregex.replacepathregex.replacement": "/bar/$1"
    4. }
    1. # Replace path with regex
    2. labels:
    3. - "traefik.http.middlewares.test-replacepathregex.replacepathregex.regex=^/foo/(.*)"
    4. - "traefik.http.middlewares.test-replacepathregex.replacepathregex.replacement=/bar/$1"
    1. # Redirect with domain replacement
    2. [http.middlewares]
    3. [http.middlewares.test-replacepathregex.replacePathRegex]
    4. regex = "^/foo/(.*)"
    5. replacement = "/bar/$1"
    1. # Redirect with domain replacement
    2. http:
    3. middlewares:
    4. test-replacepathregex:
    5. replacePathRegex:
    6. regex: "^/foo/(.*)"
    7. replacement: "/bar/$1"

    Configuration Options

    General

    The ReplacePathRegex middleware will:

    • replace the matching path by the specified one.
    • store the original path in a X-Replaced-Path header.

    regex

    The regex option is the regular expression to match and capture the path from the request URL.

    Warning

    Care should be taken when defining replacement expand variables: $1x is equivalent to ${1x}, not ${1}x (see Regexp.Expand), so use ${1} syntax.

    Tip

    Regular expressions and replacements can be tested using online tools such as Go Playground or the Regex101.

    replacement

    The replacement option defines how to modify the path to have the new target path.