<div dir="ltr">Hi,<div><br></div><div>We're running Jenkins behind an Nginx reverse proxy and see issues where Jenkins running in Tomcat returns 404 because it receives URLs that have $ encoded as %24. From the Tomcat logs:</div><div>10.0.7.212 - - [15/Dec/2015:00:15:22 +0000] "POST /%24stapler/bound/c43ae9fc-dcca-4fbe-b247-82279fa65d55/render HTTP/1.0" 404 992<br><br>If we access Tomcat directly, it does not return a 404 and $ is not encoded:</div><div>10.0.7.212 - - [15/Dec/2015:00:16:54 +0000] "POST /$stapler/bound/95ed7e0f-f703-458a-a456-8bf729670a4a/render HTTP/1.1" 200 437<br></div><div><br></div><div>When I log the $request_uri and $uri variables, it doesn't look like the $ is being encoded:<br></div><div><div>Dec 15 00:15:22 ip-10-0-7-212.us-west-2.compute.internal nginx[2732]: ip-10-0-7-212.us-west-2.compute.internal nginx: [15/Dec/2015:00:15:22 +0000] Hi Sunil! Request URI: /service/jenkins/$stapler/bound/c43ae9fc-dcca-4fbe-b247-82279fa65d55/render is now URI: /$stapler/bound/c43ae9fc-dcca-4fbe-b247-82279fa65d55/render</div><div><br></div><div>However, it looks like the rewrite rule in our location block is causing the $ to be encoded. If I comment out this block or change the regex so it doesn't match, this works. </div><div><br></div>Here's the relevant configuration block:</div><div><div>location ~ ^/service/jenkins/(?<path>.*) {</div><div>            rewrite ^/service/jenkins/?.*$ /$path break;</div><div><br></div><div>            proxy_set_header        Host $http_host;</div><div>            proxy_set_header        X-Real-IP $remote_addr;</div><div>            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;</div><div>            proxy_set_header        X-Forwarded-Proto $scheme;</div><div><br></div><div>            proxy_pass <a href="http://10.0.0.63:10115">http://10.0.0.63:10115</a>;</div><div>            proxy_redirect http://$host/service/jenkins/ /service/jenkins/;</div><div>            proxy_redirect http://$host/ /service/jenkins/;</div><div>        }</div></div><div><br></div><div>Is there a way to bypass this encoding (an equivalent to Apache's <a href="https://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_ne">noescape</a> flag?)?<br><br>Thanks in advance,</div><div><br></div><div>Sunil</div><div><br></div></div>