I am trying to configure a reverse proxy for Jenkins using IIS 7.5, Application Request Routing 3.0 (ARR), and URL Rewrite 2.0.
I have a proxy server that works mostly, but I am facing problems with URLs containing the percent sign (%).
No matter what I try, the proxy insists on either encoding or re-encoding the percent sign in the rewritten URL.
This is how I want the URLs to be rewritten:
http:
Here's how the URLs really correspond:
http:
- or -
http:
How can I get IIS \ ARR \ Rewrite to stop recoding my rewritten URLs?
What I tried:
( URL http://my.host:8080/a/b):
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" ignoreCase="true" />
<action type="Rewrite" url="http://my.host:8080/{R:1}" />
</rule>
UNENCODED_URL ( URL http://my.host:8080/a%252Fb):
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{UNENCODED_URL}" pattern="/(.*)" />
</conditions>
<action type="Rewrite" url="http://my.host:8080/{C:1}" />
</rule>
URL ( - URL http://my.host:8080/a%252Fb):
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" ignoreCase="false" />
<action type="Rewrite" url="http://my.host:8080/a%2Fb" />
</rule>
Scott Hanselman " Wackiness: , ASP.NET/URL- IIS "
<httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="*,:,&,\" relaxedUrlToFileSystemMapping="true" /><security>
<requestFiltering allowDoubleEscaping="true" />
</security>'
. , IIS - Jenkins, HTTP- URL- .