我有一个传入请求网址:
http://localhost/MyService/myservice.svc?serverInfo&pVersion=00
我在webconfig中写了一条规则(在IIS管理器中使用URL Rewrite):
<rule name="ServerInfo" stopProcessing="true">
<match url="myservice[.]svc[\?]serverInfo[&]pVersion[=]([^]+)" />
<action type="Redirect" url="myservice.svc/folder/serverInfo/pVersion={R:1}" />
</rule>
但由于我在匹配网址中使用了&#34;?&#34; 字符,因此无效。
如何更改正则表达式才能正常工作?
(我必须进行重定向/重写,因为它是一个宁静的WCF服务,而且它不支持传入网址的类型)
答案 0 :(得分:0)
请改为:
<rule name="ServerInfo" stopProcessing="true">
<match url="myservice.svc" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{QUERY_STRING}" pattern="serverInfo&pVersion=([^]+)" />
</conditions>
<action type="Redirect"
url="myservice.svc/folder/serverInfo/pVersion={C:1}"
appendQueryString="false"
redirectType="Found" />
</rule>