如何通过Nginx Ingress移除路径末尾的斜杠?
移除Ingress路由路径末尾斜杠的配置方法
要实现带末尾斜杠的路径重定向到无斜杠版本(如example.com/→example.com、example.com/my-path/→example.com/my-path),你可以通过添加Nginx Ingress的自定义配置片段来实现。
修改后的Ingress配置
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / # 添加自定义Nginx配置处理末尾斜杠重定向 nginx.ingress.kubernetes.io/configuration-snippet: | rewrite ^(.*)/$ $1 permanent; spec: rules: - http: paths: - path: / pathType: Prefix backend: service: name: example-service port: number: 80
配置说明
nginx.ingress.kubernetes.io/configuration-snippet:这个注解允许插入自定义Nginx指令,其中rewrite ^(.*)/$ $1 permanent;会匹配所有末尾带斜杠的路径,将其重定向到去掉斜杠的版本,permanent表示返回301永久重定向。- 保留原有的
rewrite-target: /是因为你的路径配置为/(Prefix类型),确保所有请求都能正确转发到后端服务的根路径。
扩展说明
如果后续Ingress添加了子路径(比如/my-path),这个规则依然生效——只要请求路径末尾带斜杠,都会自动重定向到无斜杠的对应路径,无需为每个路径单独配置。
内容的提问来源于stack exchange,提问作者Süleyman Gezsat
相关产品推荐
相关产品推荐

