IIS URL重写入站规则条件失败

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" />

我有以下IIS URL重写规则。如果请求的格式为

/PatientListAppSSO/index.html

如果请求的格式为

/PatientListAppSSO/index.html?data=stuff

请求已被处理

       <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,现在它可以工作了!