已配置HTTPS的IIS站点登录后跳转至非安全default.aspx问题求助
解决登录后跳转至HTTP页面的问题
1. 修正跳转代码的地址写法
不要使用相对路径直接跳转,改为动态生成HTTPS地址或者直接指定完整HTTPS路径:
- 动态获取当前站点协议(适配不同环境,推荐使用):
Response.Redirect($"{Request.Url.Scheme}://{Request.Url.Host}/default.aspx");
- 直接指定完整HTTPS地址:
Response.Redirect("https://domainname/default.aspx");
2. 在IIS中强制全站HTTPS
- 打开IIS管理器,选中目标站点,进入SSL设置
- 勾选「要求SSL」,客户端证书根据业务需求选择「忽略」或其他选项
- 配置URL重写规则(需先安装URL重写模块):
- 进入站点的URL重写功能,添加新规则
- 规则命名为「HTTP转HTTPS」,匹配URL使用正则表达式
(.*) - 添加条件:
{HTTPS}等于off - 操作设置为重定向到
https://{HTTP_HOST}/{R:1},重定向类型选「永久(301)」
3. 通过Web.config配置强制HTTPS
在Web.config中添加以下配置,从代码层面强制HTTPS:
- 强制Cookie使用SSL:
<system.web> <httpCookies requireSSL="true" /> </system.web>
- 添加URL重写规则(无需手动在IIS配置):
<system.webServer> <rewrite> <rules> <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}/{R:1}" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer>
4. 排查代码中的硬编码HTTP地址
检查项目中所有跳转、资源引用的代码,确保没有硬写http://的地址,统一使用相对路径或动态协议地址,避免触发HTTP跳转。
内容的提问来源于stack exchange,提问作者Jetal
相关产品推荐
相关产品推荐

