Bug 44730 - duplicate query string in remote server url when using "nocanon" reverse proxy
duplicate query string in remote server url when using "nocanon" reverse proxy
Status: NEW
Product: Apache httpd-2
Classification: Unclassified
Component: mod_proxy
2.2.8
PC Linux
: P2 normal (vote)
: ---
Assigned To: Apache HTTPD Bugs Mailing List
: PatchAvailable
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2008-04-01 10:58 UTC by Wil Tan
Modified: 2011-06-29 21:00 UTC (History)
0 users



Attachments
Proof-of-concept that fixes the issue (1.15 KB, patch)
2008-04-01 11:02 UTC, Wil Tan
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Wil Tan 2008-04-01 10:58:29 UTC
I have the following config:

<VirtualHost *:80>
    ServerName alpha.xri.net
    ProxyRequests Off
    ProxyPass / http://localhost:8003/ nocanon
    ProxyPassReverse / http://localhost:8003/
    ErrorLog logs/alphaxriproxy-error_log
    CustomLog "|/usr/sbin/cronolog /usr/local/apache2/logs/alphaxriproxy.log.%Y-%m-%d" combined
</VirtualHost>


When a request comes in to the local server:

http://alpha.xri.net/proxy/=kermit*%E6%97%A5%E6%9C%AC%E7%89%88?_xrd_r=application/xrds+xml

the mapped remote server URL became:

http://localhost:8003/proxy/=kermit*%E6%97%A5%E6%9C%AC%E7%89%88?_xrd_r=application/xrds+xml?_xrd_r=application/xrds+xml

This seems to happen when "nocanon" is turned on.

This is related to bug 41798.
Comment 1 Wil Tan 2008-04-01 11:02:27 UTC
Created attachment 21755 [details]
Proof-of-concept that fixes the issue

This seems to be due to the code handling the "nocanon" option using r->unparsed_uri instead of r->uri. The r->unparsed_uri contains the query string while r->uri does not.

This patch excludes the query portion of r->unparsed_uri when constructing the remote server URL.