我有以下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。
有什么想法我要去哪里吗?
答案 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
和