【问题标题】:Why is IIS stripping web page extensions all of a sudden?为什么 IIS 突然剥离网页扩展?
【发布时间】:2020-09-13 08:07:11
【问题描述】:

今天早上,我推出了一个新的 .Net 网站(fw 4.6.1,之前的 4.5.1)投入生产。 IIS(我假设)从所有网页中剥离了扩展(即 index.aspx 刚刚成为索引)。我使用 IIS 重写使这些网站运行了 8 年以上。看起来 IIS 看到了“无扩展”网页,重写启动并将其发送到不存在的位置,产生 404。

我在 3 天前也进行了 Windows 更新(可能会错过这个问题,但不太可能)。重写规则基本上是说,如果找不到页面,请在“客户端”子目录中查找页面。规则如下:

    <rewrite>
        <rules>
            <rule name="Client Relocation" patternSyntax="Wildcard" stopProcessing="true">
                <match url="*" negate="false" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="Clients/{R:0}" />
            </rule>
        </rules>
    </rewrite>

我能够通过删除子目录中的重写规则来解决此问题:

  <rewrite>
      <rules>
          <remove name="Client Relocation" />
      </rules>
  </rewrite>

因此,扩展名似乎已被剥离,然后 IIS 获取该页面并认为它不存在,因此重写规则生效。

所以,我的问题是:谁/什么在剥离扩展,我该如何阻止它这样做?

【问题讨论】:

  • 重写规则不会更改 Web 浏览器中的 URL。因此,如果您观察到此类变化,则可能来自您的 Web 应用程序。 FRT可以说实话,docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/…
  • 我安装了 FRT,以前从未使用过,并试图重现错误。它显示了一个丢失的 .gif(这是正确的),但不是在网页上。在我的开发服务器上,它正确显示没有扩展名的 .aspx。我会看看我是否可以在生产方面做点什么并报告。
  • 我仍在处理 FRT,但参考您对 Web 应用程序的评论,我将网页放在调试器中,最后执行的行是:window.location.href = " /lmw/main/index.aspx";然后在 .Net 程序中,我在 index.aspx 的第一行放置一个断点,并在立即窗口中输入:Context.Request.ServerVariables["PATH_INFO"]; “/lmw/main/index” 如您所见,那里没有扩展名。那么,什么会取消 JS .href = 语句和被调用的 .Net 页面之间的扩展?
  • FRT 无痕迹。它针对所有页面、错误 100-999 和所有提供程序进行了配置。 windows.location.href = /lmw/main/index.aspx 但它显示为 /lmw/main/index

标签: asp.net iis url-rewriting


【解决方案1】:

Lex Li 用关于应用程序的评论和失败的请求跟踪让我走上了正轨。原来是修改并添加了 App_Start/RouteConfig.cs 文件:

        var settings = new FriendlyUrlSettings();
        settings.AutoRedirectMode = RedirectMode.Permanent;
        routes.EnableFriendlyUrls(settings);

不完全确定如何或为什么,但注释掉 AutoRedirectMode 会重新启用扩展。如果我能回答 Lex 的评论,我会回答的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 2015-02-18
    • 1970-01-01
    相关资源
    最近更新 更多