IIS中的双重转义和URL重写
我有一个URL(自动生成),路径中有加号(+),我得到了404 我搜索了一会儿,发现我们可以使用以下方法启用双重编码:IIS中的双重转义和URL重写,iis,url-rewriting,coldfusion,iis-7.5,Iis,Url Rewriting,Coldfusion,Iis 7.5,我有一个URL(自动生成),路径中有加号(+),我得到了404 我搜索了一会儿,发现我们可以使用以下方法启用双重编码: <security> <requestFiltering allowDoubleEscaping="true" /> </security> 我面临的问题是该URL的重写规则,在捕获的组中,加号被空格替换: <rule name="Test Page Rewrite" stopProcessing="true">
<security>
<requestFiltering allowDoubleEscaping="true" />
</security>
我面临的问题是该URL的重写规则,在捕获的组中,加号被空格替换:
<rule name="Test Page Rewrite" stopProcessing="true">
<match url="^test/([\-a-z0-9_.+]+)$" ignoreCase="true" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="test/index.cfm?p1={R:1}" />
</rule>
e、 g。,
对于URL:/test/test+page
页面上可用的URL参数是p1:testpage
是否有任何解决方法可用于从请求的URL中捕获,以便URL参数
p1
的值为test+page
(原始)?您可以使用UrlEncode
功能。此规则适用于您:
<rule name="Test Page Rewrite" stopProcessing="true">
<match url="^test/([\-a-z0-9_.+]+)$" ignoreCase="true" />
<conditions>
<add input="{REQUEST_URI}" pattern="^/test/index.cfm" negate="true" />
</conditions>
<action type="Rewrite" url="test/index.cfm?p1={UrlEncode:{R:1}}" />
</rule>
您需要更改规则以允许使用“+”。这个替换在它到达CF服务器之前很久就已经发生了。我已经在模式
^test/([\-a-z0-9.+]+)$”中允许了“+”
。你是说别的吗?