所以今天“这不是你的日常要求”:)
我想创建一个规则,只有在缺少某些查询参数时才会重定向到其他页面。
我发现了一些如果参数存在会重写/重定向的例子, 但是,如果我想检查它们是否不存在,我该怎么办?
例如,这将测试参数是否存在并根据以下内容重定向:
<rule name="RedirectUserFriendlyURL1" stopProcessing="true">
<match url="^$" />
<conditions>
<add input="{QUERY_STRING}" pattern="^lon=([^=&]+)&lat=([^=&]+)&zoom=([^=&]+)$" />
</conditions>
<action type="Redirect" url="/{C:1}/{C:2}/{C:3}" appendQueryString="false" />
</rule>
如何更改此规则以测试它们是否不存在?
答案 0 :(得分:0)
^((?!regex)。)* $正则表达式不包含正则表达式。 在此处阅读更多内容http://bloggernitin.blogspot.in/2007/12/regex-for-doesnt-contain.html
如果您正在寻找像lon = xyz这样的东西,它们不存在于params中,那么请使用此正则表达式 ^(?!lon =(xyz))这将检查Lon param是否在字符串的开头不存在
更多示例 -
如果您遇到只有缩放参数的情况,那么查询字符串和lat / lon缺失 例如查询字符串a)&#34; lat = 23&amp; zoom = 10&#34; b)&#34; zoom = 13&#34;
正则表达式 - ^(?!lon =。)(?!lat =。)zoom =([^ =&amp;] +)
结果 - a)不匹配b)匹配$ 1 = 13
现在你可以给其他参数提供默认值。