IIS URL重写-如果缺少查询参数
所以这不是今天的“日常需求”: 我想创建一个规则,仅当缺少一些查询参数时,该规则才会重定向到其他页面 我发现了一些示例,如果参数存在,这些示例将重写/重定向, 但是如果我想检查它们是否不存在,我该怎么做呢 例如,这将测试参数是否存在,并基于该参数重定向:IIS URL重写-如果缺少查询参数,iis,url-rewriting,Iis,Url Rewriting,所以这不是今天的“日常需求”: 我想创建一个规则,仅当缺少一些查询参数时,该规则才会重定向到其他页面 我发现了一些示例,如果参数存在,这些示例将重写/重定向, 但是如果我想检查它们是否不存在,我该怎么做呢 例如,这将测试参数是否存在,并基于该参数重定向: <rule name="RedirectUserFriendlyURL1" stopProcessing="true"> <match url="^$" />
<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>
如何更改此规则以测试它们是否不存在?^((?!regex)。*$是不包含regex的正则表达式。
在这里阅读更多
如果您正在寻找类似lon=xyz的东西,但在params中不存在,那么请使用此正则表达式
^(?!lon=(xyz))这将检查lon参数是否不在字符串的开头
更多例子-
如果只有缩放参数,则会出现查询字符串,并且缺少lat/lone、 g.查询字符串a)“纬度=23和缩放=10”b)“缩放=13”
正则表达式-^(?lon=)(?!lat=)zoom=([^=&]+)
结果-a)不匹配b)匹配$1=13
现在您可以为其他参数指定默认值
我需要检查多个参数,你能举个例子吗?你可以使用这个网站来尝试你的正则表达式模式,这仍然会检查参数的精确匹配。我需要测试参数是否存在以及它是否有任何值。示例是这样的:
?lon=value\u或_NOVALUE&lat=value\u或_NOVALUE&zoom=value\u或_NOVALUE