如何在Windows Server的IIS中强制HTTPS且避免多余斜杠问题
IIS HTTP强制跳转HTTPS路径多斜杠问题修复方案
问题根因
通用配置教程中的重定向规则存在拼接逻辑漏洞:IIS服务器变量{REQUEST_URI}本身已经包含路径开头的斜杠/,若规则中在{HTTP_HOST}后额外添加了斜杠,两者拼接就会出现双斜杠的异常。
可视化界面修复步骤
- 打开IIS管理器,定位到目标站点,双击进入「URL重写」模块
- 找到已配置的HTTP转HTTPS规则,双击进入编辑页
- 切换到「操作」选项卡,修改「重定向URL」输入框内容:将原有
https://{HTTP_HOST}/{REQUEST_URI}中多余的斜杠删除,调整为https://{HTTP_HOST}{REQUEST_URI} - 保持「追加查询字符串」勾选状态,重定向类型可保留原有301/302配置
- 点击右上角「应用」保存规则,可执行
iisreset命令重启IIS服务确保配置生效
web.config直接修改方式
若直接通过站点根目录的web.config文件配置规则,可直接修改对应规则的action节点,正确配置片段如下:
<rule name="HTTP to HTTPS redirect" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="off" ignoreCase="true" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="true" /> </rule>
配置生效后清理浏览器缓存再测试,路径斜杠就会保持原有状态,不会出现多余斜杠。
内容的提问来源于stack exchange,提问作者techx365
相关产品推荐
相关产品推荐

