Traefik StripPrefixRegex 中间件文档
StripPrefixRegex(正则去除路径前缀)
stripPrefixRegex 中间件会去除匹配的路径前缀,并将其存储在 X-Forwarded-Prefix 头中。
提示
当你的后端服务监听根路径
/但需要在特定前缀下暴露时,请使用stripPrefixRegex中间件。
配置示例
YAML 格式:
yaml
http:
middlewares:
test-stripprefixregex:
stripPrefixRegex:
regex:
- "/foo/[a-z0-9]+/[0-9]+/"TOML 格式:
toml
[http.middlewares]
[http.middlewares.test-stripprefixregex.stripPrefixRegex]
regex = ["/foo/[a-z0-9]+/[0-9]+/"]Labels 格式:
yaml
labels:
- "traefik.http.middlewares.test-stripprefixregex.stripprefixregex.regex=/foo/[a-z0-9]+/[0-9]+/"Kubernetes 格式:
yaml
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: test-stripprefixregex
spec:
stripPrefixRegex:
regex:
- "/foo/[a-z0-9]+/[0-9]+/"配置选项
| 字段 | 描述 | 默认值 | 必填 |
|---|---|---|---|
regex | 用于从请求 URL 中匹配路径前缀的正则表达式列表。例如 /products 也会匹配 /products/shoes 和 /products/shirts。更多信息参见 regex 节。 | - | 否 |
regex
如果你的后端服务提供静态资源(例如图片或 JavaScript 文件),它可以使用 X-Forwarded-Prefix 头构建相对 URL。
使用前面的示例,后端应返回 /products/shoes/image.png(而不是 /images.png,Traefik 可能无法将其关联到同一后端)。
提示
可以使用在线工具如 Go Playground 或 Regex101 测试正则表达式和替换。
在 YAML 中定义正则表达式时,任何转义字符都需要双重转义:
example\.com需要写成example\\.com。
在生产环境使用 Traefik OSS?
如果你在工作中使用 Traefik,可以考虑为其添加企业级 API 网关能力或获取 Traefik OSS 的商业支持。