很多人给 IIS 网站配置 HTTPS 后,都会遇到一个坑:HTTPS 正常访问,但 HTTP 直接报 403 禁止,重定向怎么配都没用。
其实问题根本不在 URL 重写,也不在权限,而是SSL 设置把 80 端口直接拦死了。
四、日志检查
检查C:\inetpub\logs\LogFiles\W3SVC3文件夹下的日志文件,确定报错原因

二、原因分析
IIS 开启了「要求 SSL」,导致:
- 所有 HTTP(80 端口)请求直接返回 403.4 需要 SSL
- 重定向规则还没来得及执行,就被 IIS 拦截
- 日志显示:80 端口一律 403.4,443 端口正常 200
三、解决步骤
- 打开 IIS,选中你的网站
- 找到「SSL 设置」
- 取消勾选「要求 SSL」
- 选择「忽略」,保存应用
- 重启 IIS:
iisreset

四、配置 HTTP 自动跳转 HTTPS
关闭强制 SSL 后,再启用 URL 重写:
- 匹配规则:^.*$
- 条件:
{HTTPS} 匹配 ^on$ - 重定向到:
https://{HTTP_HOST}{REQUEST_URI} - 类型选择 301 永久重定向

