Apache 反向代理和查询字符串

我认为在使用Apache作为反向代理时很常见。按照手册上的指示设置ProxyPass和ProxyPassReverse应该可以运行,但在我处理的情况中,后端服务器包含了服务器名称的查询字符串(URL参数),所以需要进行额外的设置。

当出现这种情况时,按照下面的 Rewrite 规则,根据 QUERY_STRING 将 internal-servername 改为 servername。这就是处理 QUERY_STRING 的方式嘛…。

RewriteEngine on

RewriteCond "%{QUERY_STRING}" "(.*)internal-servername(.*)"
RewriteRule "^/(.*)$"  "/$1?%1servername%2" [R,L]

可能需要与其他Rewrite规则相关的N标志。