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

Apache条件反向代理部分生效,含gateway的URL返回403问题

Apache条件反向代理配置修复

问题分析

你的配置存在以下关键问题,导致含"gateway"的URL返回403错误:

  • 错误检查QUERY_STRING(查询字符串)而非REQUEST_URI(请求路径)来判断是否包含"gateway",但你的需求是路径中包含"gateway"
  • 移除"gateway"前缀的重写规则放在代理规则之后,由于代理规则带有[L]标记,该重写规则永远不会被执行
  • 代理规则的匹配逻辑未正确区分含/不含"gateway"的路径

修正后的配置

# 强制HTTPS跳转
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# 绕过.well-known路径的代理
ProxyPass /.well-known !

# 处理含gateway的路径:移除前缀后代理到10094端口
RewriteCond %{REQUEST_URI} ^/gateway/ [NC]
RewriteRule ^/gateway/(.*)$ http://localhost:10094/$1 [P,L]

# 处理不含gateway的路径:代理到10095端口
RewriteRule ^/(.*)$ http://localhost:10095/$1 [P,L]

# 反向代理响应头重写配置
ProxyPassReverse / http://localhost:10095/
ProxyPassReverse / http://localhost:10094/

配置说明

  • HTTPS强制跳转:确保所有HTTP请求重定向到HTTPS,放在最前面避免后续规则干扰
  • gateway路径处理:通过RewriteCond %{REQUEST_URI} ^/gateway/匹配以/gateway开头的请求,用RewriteRule移除前缀并代理到10094端口,[P]标记启用反向代理,[L]标记停止后续规则处理
  • 非gateway路径处理:所有不满足上述条件的请求统一代理到10095端口
  • ProxyPassReverse:修改后端返回的响应头,确保客户端收到正确的地址信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 02:22:21