移除URL末尾斜杠的重定向规则跳转至HTTP而非HTTPS,求修改方案
解决方案
你当前的规则重定向后走HTTP的核心原因是<action>配置的目标路径为相对路径{R:1},IIS生成完整重定向URL时会默认沿用当前请求的协议,部分部署环境下也会自动 fallback 到HTTP,只需显式指定HTTPS协议即可修复。
修改后的完整规则
<rule name="Remove trailing slash" stopProcessing="true"> <match url="(.*)/$" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" /> </rule>
改动说明
仅调整了<action>节点的url属性:
- 显式添加
https://前缀,强制重定向目标走HTTPS协议 - 新增内置变量
{HTTP_HOST}自动匹配当前请求的站点域名,无需硬编码域名 - 保留
{R:1}变量继承原有逻辑,取匹配到的无末尾斜杠的路径部分
注意事项
配置完成后需要清除浏览器缓存再测试,原有301永久重定向规则会被浏览器长期缓存,未清缓存时可能仍会触发旧的HTTP重定向逻辑。
内容的提问来源于stack exchange,提问作者Navya
相关产品推荐
相关产品推荐

