regex - 缺少查询字符串参数时,如何在 IIS 中制定重写规则?
问题描述
当 URL 缺少查询字符串的一部分时,我想重定向。所以,例如
https://www.example.com?foo=1&bar=2
是一个有效的网址,不要做任何事情。但是,当 url 看起来像这样时:
https://www.example.com?foo=1
我想重定向到https://www.example.com
. 这里缺少“bar”,但“bar”可以是任何名称。
为此,我想使用 IIS 重定向使用正则表达式。我发现了这个问题:IIS URL Rewrite - if query parameter(s) is missing但我无法让它在我的场景中工作。这是因为 之后的每个其他查询字符串参数?
都可以具有任何名称。第一个参数总是foo
,但其余参数可以有任何名称。
有人可以帮我使用正确的正则表达式吗?
编辑:必须重定向的查询字符串的真实示例:
?crop=0,0,0,0
或者
?crop=2.6111111111111112,0.22222222222222221,0,0
两者都缺少,&
所以它们必须被重定向。
解决方案
您可以尝试以下 url 重写规则:
<rule name="query string rule" stopProcessing="true">
<match url="(.*)" negate="false" />
<conditions logicalGrouping="MatchAll">
<add input="{QUERY_STRING}" pattern="^foo=(\d{0,5})$" />
</conditions>
<action type="Redirect" url="http://www.sample1.com/" appendQueryString="false" />
</rule>
推荐阅读
- dynamic-programming - 0/K 背包。怎么解决?
- batch-file - 批处理文件中的最小值到最大值
- javascript - Vuetify v-dialog 使用后挂载多次且不在循环内
- java - 使用多图选择模式时不能只选择一张图
- javascript - 当一个函数数组作为参数传递给另一个函数时,如何返回一个承诺?
- reactjs - 如何在反应样式的组件中使用自定义图标?
- c - 来自 Ghidra 的反编译程序集中的像素转换
- mysql - 在 MySQL 数据库中存储单个值的最佳方法是什么?
- python - KivyMD / Проблема с KivyMD 的问题
- django - 将猫鼬模式转换为 django 模型