【发布时间】:2017-06-14 09:16:52
【问题描述】:
我有一个 URL(自动生成),它的路径中有加号(+),我得到了 404。
我搜索了一段时间发现我们可以使用以下方式启用双重编码:
<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>
例如, 对于网址:/test/test+page
页面上可用的URL参数是p1: test page
是否有任何解决方法可以从请求的 URL 中捕获,以便 URL 参数 p1 的值为 test+page(original)?
【问题讨论】:
-
您需要更改规则以允许“+”。这种替换早在它到达 CF 服务器之前就已经发生了。
-
我已经在
^test/([\-a-z0-9_.+]+)$"模式中允许了“+”。你还有别的意思吗?
标签: iis url-rewriting coldfusion iis-7.5