IIS URL重写入站规则条件失败
我有以下IIS URL重写规则。如果请求的格式为 /PatientListAppSSO/index.html 如果请求的格式为 /PatientListAppSSO/index.html?data=stuff 请求已被处理IIS URL重写入站规则条件失败,iis,url-rewriting,Iis,Url Rewriting,我有以下IIS URL重写规则。如果请求的格式为 /PatientListAppSSO/index.html 如果请求的格式为 /PatientListAppSSO/index.html?data=stuff 请求已被处理 <rule name="PLA Rewrite Rule" patternSyntax="ExactMatch" stopProcessing="true"> <match url="index.html" />
<rule name="PLA Rewrite Rule" patternSyntax="ExactMatch" stopProcessing="true">
<match url="index.html" />
<action type="Redirect" url="../PatientListApp/default.aspx" appendQueryString="false" logRewrittenUrl="true" redirectType="Found" />
<conditions>
<add input="{QUERY_STRING}" pattern="^$" />
</conditions>
</rule>
当请求没有查询字符串时,重写规则不会重定向。
我在失败的请求日志中看到以下内容:
<EventData>
<Data Name="ContextId">{80000002-0001-F800-B63F-84710C7967BB}</Data>
<Data Name="Input">{QUERY_STRING}</Data>
<Data Name="ExpandedInput"></Data>
<Data Name="MatchType">0</Data>
<Data Name="Pattern">^$</Data>
<Data Name="Negate">false</Data>
<Data Name="Succeeded">false</Data>
</EventData>
{8000002-0001-F800-B63F-84710C7967BB}
{QUERY_STRING}
0
^$
错误的
错误的
ExpandedInput字段表示零长度查询字符串与^$匹配,这将导致正匹配,但Successed字段表示false
你知道我哪里出错了吗?你可以使用下面的URL重写规则:
<rule name="PLA Rewrite Rule" patternSyntax="ECMAScript" stopProcessing="true">
<match url="(.*)" />
<action type="Redirect" url="/PatientListApp/default.aspx" appendQueryString="false" logRewrittenUrl="true" redirectType="Found" />
<conditions>
<add input="{REQUEST_URI}" pattern="/index.html" />
</conditions>
</rule>
及
太多了!你的答案是我为patternSyntax选择了ExactMatch,不知道它也适用于条件!我把它改成了RegExp,现在它可以工作了!