如何禁用 IIS 从子域到 www 的重定向?

How can I disable IIS redirection from subdomain to www?

我正在 IIS 上创建一个名为:

的子域
buy.mydomain.com

我在 IIS 中将 AFAICT 设置为一个普通网站,但每当我在浏览器中点击它时,我都会收到 302 重定向到:

www.buy.mydomain.com

我在配置或代码中找不到任何地方会导致此重定向。谁能告诉我是什么让 IIS 以这种方式运行?

IIS 默认情况下没有该配置,如果您有权访问服务器,我将启用失败的请求跟踪以查看为什么会出现这种情况(哪个模块返回状态 302)。 例如,我会在您的 web.config 中添加一条规则(假设您已启用失败请求跟踪),例如:

<tracing>
  <traceFailedRequests>
    <add path="*">
      <traceAreas>
        <add provider="ASP" verbosity="Verbose" />
        <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
        <add provider="ISAPI Extension" verbosity="Verbose" />
        <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,FastCGI,WebSocket,Rewrite" verbosity="Verbose" />
      </traceAreas>
      <failureDefinitions statusCodes="301-308" />
    </add>
  </traceFailedRequests>
</tracing>

还有可能发生的情况是,如果浏览器无法连接到服务器,有时它们会尝试添加 "www",因此您可能还想使用 Fiddler 来查看您是否确实是从服务器获取 301/302/307 重定向,或者浏览器或扩展程序只是想变得聪明。

一个选项可以是 URL 重写模块或 URL 重定向模块,因此最好在 IIS 管理器中仔细检查它们的配置。