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

Apache反向代理配置异常:URL不变时跨站内容展示404问题

问题分析

你的配置问题出在Apache指令的执行顺序上:

  • 先设置的ProxyPass "/product"会匹配所有以/product开头的请求(包括/product/about),直接将请求转发到reservepage
  • 后续的ProxyPassMatch "^/product/.*" "!"排除规则根本无法触发,因为请求已经被前面的代理规则处理完毕
  • 最终/product/about被转发到reservepage,但目标站点不存在该路径,因此返回404错误
解决方案

调整指令顺序,先排除不需要代理的路径,再设置代理规则,同时精准匹配仅/product/根路径的代理请求:

RewriteEngine On  

# 先排除需要保留在mainpage的子路径
ProxyPassMatch "^/product/about" "!"
# 若有多个类似子路径需排除,可使用通用正则:
# ProxyPassMatch "^/product/[^/]+$" "!"

# 仅代理/product/根路径到reservepage的product123
ProxyPass "/product/" "https://reservepage.com/product123/" 
ProxyPassReverse "/product/" "https://reservepage.com/product123/"  

SSLProxyEngine On
关键说明
  1. 指令顺序优先级:Apache会从上到下处理Proxy相关指令,必须先设置排除规则,再配置代理规则
  2. 路径精准匹配:
    • 使用/product/(带末尾斜杠)代替/product,避免误匹配所有以/product开头的子路径
    • 通用正则^/product/[^/]+$可匹配所有/product/xxx格式的子路径,无需逐个添加排除规则
  3. ProxyPassReverse作用:修正reservepage返回响应头中的URL,确保前端始终看到mainpage的地址,需与ProxyPass规则一一对应

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 06:34:59