我已经设置了 apache 反向代理,以便从防火墙后面为 bugzilla 提供服务,配置如下
ProxyRequests Off
ProxyPass /bugzilla http://88.88.88.75/bugzilla nocanon
ProxyPassReverse /bugzilla http://88.88.88.75/bugzilla
<location /bugzilla/>
ProxyPassReverse /
RequestHeader unset Accept-Encoding
</location>
但问题是,当请求到达 Bugzilla 时,搜索词都经过编码,Bugzilla 找不到任何东西
例如,“ ”在到达 Bugzilla 时search term
会变成“ ”,因为它被代理编码为“ ”。search%20term
search%2520term
有任何想法吗?
答案1
好的,我已停止使用 mod_rewrite 进行代理,并告诉它不要对字符进行编码。现在我的配置如下
ProxyRequests Off
RewriteEngine On
RewriteLog /var/log/httpd/bugzilla-rewrite.log
RewriteLogLevel 0
RewriteRule ^/bugzilla/(.*)$ http://88.88.88.75/bugzilla/$1 [P,NE]
ProxyPass /bugzilla http://88.88.88.75/bugzilla nocanon
ProxyPassReverse /bugzilla http://88.88.88.75/bugzilla
<location /bugzilla/>
ProxyPassReverse /
RequestHeader unset Accept-Encoding
</location>
我不知道是否需要所有线路,但它有效,我没有碰它