我有一个运行在 IIS7 上的 asp.net 网站,很久以前就配置好了。似乎有一个 302 重定向,将所有通过 HTTPS 的请求重定向到 HTTP。我想删除这个重定向,这样我们就可以通过 HTTPS 为网站提供服务。
具体来说,在使用 curl 进行测试时,请求任何页面“https://WebSite.com/SomeThing”都会重定向到“http://website.com/something”(不安全,不保留大小写)。唯一没有重定向到 HTTP 的请求是裸域,它会先转到 Default.aspx,然后再重定向到 HTTP。以下是一些示例:
https://www.website.com -302-> Default.aspx
https://www.website.com/Default.aspx -302-> http://www.website.com/default.aspx
https://website.com/Default.aspx -302-> http://website.com/default.aspx
https://website.com/ABOUTUS.aspx -302-> http://website.com/aboutus.aspx
我不知道这个重定向是在哪里配置的。在 IIS 管理器中,我检查了“HTTP 重定向”模块(未启用)、“URL 重写”模块(未安装)和 SSL 设置(未设置“需要 SSL”)。我在 Web 根目录中的所有 *.aspx 文件的内容中搜索了“重定向”或“重写”,但什么也没找到。web.config 也是如此。
此重定向还可能隐藏在哪里?主机是 Azure VM 中运行的 Windows Server 2008 R2。
答案1
还有一件事需要检查,即ISAPI Filters
服务器和站点级别。
您应该在那里看到 ASP.Net filter.dlls,但可能还有其他条目。
ini
有些人使用 mod-rewrite DLL,它是 Apache mod-rewrite 模块的一个端口。可能在与 DLL 相同的目录中有一个文件。
否则我会仔细看看:
C:\WINDOWS\system32\inetsrv\config\ApplicationHost.config
寻找任何看似可疑或可能与您的问题相关的事物。
答案2
Lex Li 的评论让我朝着正确的方向前进。
除了 ASP.net 代码之外,还有不在 webroot 中的 C# 代码。MasterPage.master.cs 有重定向。