You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AKS环境下ingress-nginx路径末尾斜杠访问异常问题求助

解决AKS中Ingress-Nginx路径匹配末尾斜杠问题

问题核心

访问https://allure-report.com/200/正常,但https://allure-report.com/200返回空白页面,本质是应用期望路径带末尾斜杠,无斜杠请求导致静态资源(CSS/JS)加载路径错误,进而页面无法渲染。

可行解决方案

方案1:通过Nginx注解添加重定向规则

直接在Ingress配置中添加Nginx片段,将无斜杠的/200永久重定向到/200/,同时确保路径匹配规则覆盖两种情况:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: allure-report-ingress
  annotations:
    nginx.ingress.kubernetes.io/configuration-snippet: |
      rewrite ^/200$ /200/ permanent;
spec:
  ingressClassName: nginx
  rules:
  - host: allure-report.com
    http:
      paths:
      - path: /200(/|.*)
        pathType: Prefix
        backend:
          service:
            name: allure-report-service
            port:
              number: 80
  • configuration-snippet中的rewrite规则会匹配精确的/200路径,强制跳转到带斜杠的版本
  • 路径/200(/|.*)同时匹配/200/和/200/xxx这类子路径

方案2:结合Rewrite-Target与路径匹配

利用Ingress的rewrite注解,将无斜杠请求重写为带斜杠的格式:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: allure-report-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1/
spec:
  ingressClassName: nginx
  rules:
  - host: allure-report.com
    http:
      paths:
      - path: /200(/|$)(.*)
        pathType: Prefix
        backend:
          service:
            name: allure-report-service
            port:
              number: 80
  • 路径正则/200(/|$)(.*)会捕获/200或/200/开头的请求
  • rewrite-target: /$1/会将请求重写为带末尾斜杠的格式,让应用能正确识别路径

方案3:调整应用路由配置

如果有权限修改应用代码,可让前端/后端路由同时兼容/200和/200/路径:

  • 前端框架(如React/Vue):设置路由base路径时支持两种格式,或添加路由重定向规则
  • 后端服务:在路由层将/200请求转发到/200/处理

内容的提问来源于stack exchange,提问作者meet soni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 02:45:06