如何配置IIS URL重写规则实现带查询字符串的302跳转?
IIS URL重写302重定向规则配置方案
前提准备
确保你的IIS服务器已安装URL重写模块,若未安装可通过IIS管理器的「Web平台安装程序」搜索安装。
配置方法(两种方式任选其一)
方式一:通过IIS图形界面配置
- 打开IIS管理器,选中
domain1.com对应的站点 - 双击功能视图中的「URL重写」图标
- 在右侧操作栏点击「添加规则」,选择「空白规则」
- 按以下参数配置规则:
- 名称:自定义(例如「KB参数302重定向」)
- 匹配URL:
- 请求路径:选择「与模式匹配」
- 使用:选择「正则表达式」
- 模式:填入
^$(匹配根路径请求)
- 条件:
- 点击「添加」,条件输入框填入
{QUERY_STRING} - 检查输入字符串:选择「与模式匹配」
- 模式:填入
kb=(\d+)(捕获kb=后的数字ID)
- 点击「添加」,条件输入框填入
- 操作:
- 操作类型:选择「重定向」
- 重定向URL:填入
http://domain2.com/view/{R:1}({R:1}对应捕获到的数字ID) - 重定向类型:选择「Found(302)」
- 取消勾选「追加查询字符串」,勾选「停止处理后续规则」
- 点击「应用」保存规则
方式二:直接修改web.config文件
打开domain1.com站点根目录下的web.config,在<system.webServer>节点内添加以下配置:
<rewrite> <rules> <rule name="KB Parameter 302 Redirect" stopProcessing="true"> <match url="^$" /> <conditions> <add input="{QUERY_STRING}" pattern="kb=(\d+)" /> </conditions> <action type="Redirect" url="http://domain2.com/view/{R:1}" redirectType="Found" /> </rule> </rules> </rewrite>
注意事项
- 若目标域名使用HTTPS,需将重定向URL中的
http://替换为https:// {R:1}会自动匹配并带入kb=后的数字,例如kb=8会跳转至domain2.com/view/8- 修改web.config后,IIS会自动加载规则,无需重启站点
- 测试时可通过浏览器访问
domain1.com/?kb=8,查看网络请求的状态码是否为302,确认跳转目标正确
内容的提问来源于stack exchange,提问作者Neal
相关产品推荐
相关产品推荐

