# 错误：rewrite-target 注解值必须是有效的正则表达式

- **ID:** `kubernetes/ingress-rewrite-target-missing`
- **领域:** kubernetes
- **类别:** config_error
- **验证级别:** ai_generated
- **修复率:** 88%

## 根因

nginx.ingress.kubernetes.io/rewrite-target 注解被设置为无效的正则表达式模式或空字符串，导致 Ingress 控制器拒绝该配置。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| nginx-ingress-controller 1.8.0 | active | — | — |
| nginx-ingress-controller 1.9.0 | active | — | — |
| ingress-nginx 4.7.0 | active | — | — |

## 解决方案

1. ```
   Use a valid regex with capture groups: 'nginx.ingress.kubernetes.io/rewrite-target: /$2' and path: '/api(/|$)(.*)'
   ```
2. ```
   Validate regex with online tool before applying, then check with: kubectl describe ingress <ingress-name>
   ```

## 无效尝试

- **Setting rewrite-target to '/' with no capture groups** — 路径不匹配时重写为根路径会导致 404，且不解决正则无效问题 (70% 失败率)
- **Removing the rewrite-target annotation entirely** — 后端服务可能依赖路径重写，移除会导致路由错误 (60% 失败率)
- **Using a wildcard '*' in the regex pattern** — 星号不是有效正则，反而会触发相同错误 (95% 失败率)
