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

Apache RedirectMatch规则中&被转义为&的问题及解决

为什么Apache RedirectMatch会把&转义成&?如何避免?

问题根源

你遇到的&被转义成&的情况,核心原因是Apache配置文件中&是特殊字符——它被用来分隔指令的多个参数,而非URL查询字符串的一部分。当你在RedirectMatch的目标URL里直接写&时,Apache会把它当作指令参数的分隔符,而非URL的字面字符,最终生成重定向Location响应头时,这些&会被自动转义成HTML实体&。

解决方法

有两种简单的方式可以避免这个转义问题:

方法1:用反斜杠转义&

在配置里的每个&前加上反斜杠,明确告诉Apache这是一个字面字符,不是参数分隔符:

RedirectMatch ^/g/(.*) https://www.${APACHE_HOSTNAME}/folder1/?ec=$1\&ea=EBH\&el=GCC

方法2:用双引号包裹整个目标URL

把重定向的目标URL用双引号括起来,让Apache把整个字符串当作单一的URL参数处理,里面的&就会被正确识别为查询字符串的分隔符:

RedirectMatch ^/g/(.*) "https://www.${APACHE_HOSTNAME}/folder1/?ec=$1&ea=EBH&el=GCC"

验证效果

修改配置后重启Apache,再用curl访问https://www.example.com/g/1234,就能得到正确的重定向结果:

https://www.example.com/folder1/?ec=1234&ea=EBH&el=GCC

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:26:35