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

时间:2019-09-06 20:31:07

标签: 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" />
            <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>

ExpandedInput字段指示零长度查询字符串与^ $匹配,这将导致正匹配,但Succeeded字段声明为false。

有什么想法我要去哪里吗?

1 个答案:

答案 0 :(得分:1)

您可以使用以下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>

如果url为:

http://www.sample1.com/index.html?id=123

enter image description here

http://www.sample1.com/index.html

enter image description here