用 proxypass 排除特定目录需在转发规则前加感叹号 !,如 proxypass /static/ !,确保 apache 自身处理该路径;规则须自上而下排列,排除必须位于兜底转发之前,路径末尾斜杠需与请求严格一致。
用 proxypass 排除特定目录,核心是加感叹号 !,并确保规则顺序正确——排除必须写在所有转发规则之前。
用 ! 显式跳过目录
Apache 遇到 ProxyPass /path/ ! 就会停止匹配后续代理规则,改由自身处理该路径下的请求。常见写法:
-
ProxyPass /static/ !→ 所有/static/xxx请求不转发,Apache 直接从DocumentRoot对应子目录读取文件 -
ProxyPass /images/ !→ 图片资源本地响应,不走后端 -
ProxyPass /css/ !和ProxyPass /js/ !→ 分开写更清晰,避免遗漏
顺序不能错:排除必须在转发之前
Apache 按配置自上而下匹配,命中即停。错误写法会导致排除失效:
安全更新和维护 CLI Proxy API(CPA)部署与配置。用于 CPA 镜像升级、配置变更、认证目录兼容修复、上线验证与回滚。适用于用户提到“CPA 更新/升级/配置改了/容器重建/回滚”等场景。
- ❌ 错误(兜底规则在前):
ProxyPass / http://backend:8080/ProxyPass /static/ !→ 第二行永远不会执行 - ✅ 正确(先排除,后兜底):
ProxyPass /static/ !ProxyPass /images/ !ProxyPass / http://backend:8080/
配合 <location></location> 更灵活控制
当需要对某路径做额外限制(比如只允许内网访问),可用 <location></location> 包裹排除指令:
-
<location><br> ProxyPass !<br></location>
→ 不仅跳过代理,还可叠加权限控制 - 搭配
Require ip 192.168.1.0/24,实现“本地上传目录仅内网可读”
注意路径末尾斜杠一致性
排除规则中的路径必须和实际请求 URL 完全匹配:
-
ProxyPass /admin/ !→ 匹配/admin/xxx,但不匹配/admin(无尾 slash)或/admin-page - 若需覆盖无尾 slash 场景,可补一条:
ProxyPass /admin !(不带斜杠),但通常建议统一使用带尾 slash 的规范路径










