如何修改正则表达式,以便它也可以在我的URL
中接受+见:http://awakeningwithin.simpletix.com/Search/Lorem+/ ......错误
如果您删除符号: http://awakeningwithin.simpletix.com/Search/Lorem/ ......它有效。
<rule name="RewriteSearch" stopProcessing="true">
<match url="^Search/([_0-9a-z-]+)" />
<action type="Rewrite" url="Search.aspx?term={R:1}" />
</rule>
答案 0 :(得分:3)
网址中的加号+
字符表示SPACE(与%20
相同)。
1。基于以上内容尝试这一个:^search/([-_0-9a-z\+ ]+)
2。如果您看到404错误,请执行以下操作:
HTTP错误404.11 - 未找到
请求过滤模块配置为拒绝该请求 包含双重转义序列。
或使用此代码(位于网站根文件夹中 web.config 的某处):
<system.webServer>
<security>
<requestFiltering allowDoubleEscaping="true" />
</security>
</system.webServer>
如果#1不起作用,则执行#1 AND#2。
在IIS 7.5上测试 - 工作正常。
答案 1 :(得分:0)
您可以使用
<match url="^Search/([_0-9a-z+-]+)" />
我只是将+
添加到允许的字符中。请注意,-
必须仍然位于字符集的最后,因为z-+
具有特殊含义(z和plus之间的所有字符......无论这意味着什么)。
答案 2 :(得分:0)
如何在可接受的字符列表中添加“+”:
([+_0-9a-z-]+)