IIS(Windows Server 2019)如何配置根路径重定向到指定带参URL且隐藏目标地址
正确配置IIS URL重写实现根路径内部重写步骤
你需要实现的是**内部重写(Rewrite)**而非3xx重定向,只要按如下规则配置即可保证用户侧地址栏始终显示根路径,不会暴露跳转目标地址:
前提确认
确保你的Windows Server 2019的IIS已经安装了URL Rewrite模块,未安装的话可通过Microsoft Web Platform Installer搜索安装。
图形界面配置步骤
- 匹配规则设置:作用域选「入站规则」,匹配URL选择「与请求的URL匹配」,模式选择「正则表达式」,你设置的匹配根路径的正则
^$完全正确,额外勾选「忽略大小写」即可。 - 可选条件配置:如果要避免同服务器下其他站点被规则影响,可以新增匹配条件:条件输入
{HTTP_HOST},模式填写^mysiteExample\.org$,勾选忽略大小写。 - 操作配置(核心设置):
- 操作类型必须选择「重写」,绝对不能选「重定向」,重定向会触发3xx跳转,直接暴露目标地址且修改用户侧地址栏
- 重写URL填写
/embed.html?key=val - 不需要保留根地址携带的额外参数的话,取消勾选「追加查询字符串」,有保留需求再勾选
- 勾选「停止处理后续规则」,避免和站点其他重写规则冲突
- 配置完成后点击「应用」,执行
iisreset命令重启IIS生效。
直接修改配置文件示例
你也可以直接编辑站点根目录的web.config文件,在<system.webServer>节点下添加如下规则段,效果和图形界面配置完全一致:
<rewrite> <rules> <rule name="RootPathRewriteToEmbed" stopProcessing="true"> <match url="^$" ignoreCase="true" /> <action type="Rewrite" url="/embed.html?key=val" appendQueryString="false" /> <!-- 不需要限制站点域名的话可以删掉下面的conditions节点 --> <conditions> <add input="{HTTP_HOST}" pattern="^mysiteExample\.org$" ignoreCase="true" /> </conditions> </rule> </rules> </rewrite>
内容的提问来源于stack exchange,提问作者Jos
相关产品推荐
相关产品推荐

