我有接受參數的形式/ {參數}阿帕奇mod_proxy的URL編碼
也有是Apache2的該請求轉發到websevice REST服務
<VirtualHost *:9091>
AllowEncodedSlashes NoDecode
LogLevel debug
ProxyPass /webservice balancer://api/webservice
<Proxy balancer://api>
BalancerMember http://localhost:8030
</Proxy>
</VirtualHost>
參數可以包含編碼的字符,如%2F(/)
的問題是,再阿帕奇編碼這些字符,和WebService接收%252F代替%2F的
[Mon Oct 15 13:59:24 2012] [debug] mod_proxy_balancer.c(46): proxy: BALANCER: canonicalising URL //api/webservice/Interface GigabitEthernet1%2F0%2F2
[Mon Oct 15 13:59:24 2012] [debug] mod_proxy_balancer.c(581): proxy: BALANCER (balancer://api) worker (http://localhost:8030) rewritten to http://localhost:8030/Interface%20GigabitEthernet1%252F0%252F2%20Utilization
如果我直接請求web服務,Tomcat/Jetty會處理它查找和服務接收正確的參數。