StripPrefix

    Remove the specified prefixes from the URL path.

    Docker

    Kubernetes

    1. # Strip prefix /foobar and /fiibar
    2. apiVersion: traefik.containo.us/v1alpha1
    3. kind: Middleware
    4. metadata:
    5. name: test-stripprefix
    6. spec:
    7. stripPrefix:
    8. prefixes:
    9. - /foobar
    10. - /fiibar

    Consul Catalog

    1. # Strip prefix /foobar and /fiibar

    Marathon

    1. "labels": {
    2. "traefik.http.middlewares.test-stripprefix.stripprefix.prefixes": "/foobar,/fiibar"
    3. }

    Rancher

    File (YAML)

    1. # Strip prefix /foobar and /fiibar
    2. http:
    3. middlewares:
    4. test-stripprefix:
    5. stripPrefix:
    6. prefixes:
    7. - "/foobar"
    8. - "/fiibar"
    1. # Strip prefix /foobar and /fiibar
    2. [http.middlewares]
    3. [http.middlewares.test-stripprefix.stripPrefix]
    4. prefixes = ["/foobar", "/fiibar"]

    Configuration Options

    The StripPrefix middleware strips the matching path prefix and stores it in a X-Forwarded-Prefix header.

    Tip

    Use a StripPrefix middleware if your backend listens on the root path (/) but should be exposed on a specific prefix.

    The prefixes option defines the prefixes to strip from the request URL.

    For instance, /products also matches /products/shoes and /products/shirts.

    If your backend is serving assets (e.g., images or JavaScript files), it can use the X-Forwarded-Prefix header to properly construct relative URLs. Using the previous example, the backend should return /products/shoes/image.png (and not /images.png, which Traefik would likely not be able to associate with the same backend).

    Optional, Default=true

    This option was added to keep the initial (non-intuitive) behavior of this middleware, in order to avoid introducing a breaking change.

    It is recommended to explicitly set forceSlash to false.

    Behavior examples

    • forceSlash=true
    PathPrefix to stripResult
    //empty
    /foo/fooempty
    /foo//foo/
    /foo//foo/empty
    /bar/foo/bar
    /foo/bar/foo/bar

    Docker

    1. labels:
    2. - "traefik.http.middlewares.example.stripprefix.prefixes=/foobar"
    3. - "traefik.http.middlewares.example.stripprefix.forceSlash=false"

    Kubernetes

    Marathon

    1. "labels": {
    2. "traefik.http.middlewares.example.stripprefix.prefixes": "/foobar",
    3. "traefik.http.middlewares.example.stripprefix.forceSlash": "false"
    4. }

    Rancher

    1. labels:
    2. - "traefik.http.middlewares.example.stripprefix.prefixes=/foobar"
    3. - "traefik.http.middlewares.example.stripprefix.forceSlash=false"
    1. http:
    2. middlewares:
    3. example:
    4. stripPrefix:
    5. prefixes:
    6. - "/foobar"

    File (TOML)