IIS 8 URL 中缺少 .aspx

Missing .aspx in URL in IIS 8

我已经使用 Server 2012 R2 和 IIS 设置了新服务器,并将应用程序发布到新站点。当我在我的开发环境中 运行 应用程序时,它会在 URL 中显示 .aspx 文件扩展名,但是当我在 IIS 服务器上浏览已发布的实例时,它会删除 .aspx 扩展名。

所以它以某种方式启用了某种 URL 重写 - 我需要如何更改它才能与开发版本保持一致。我安装了 URL Rewrite 扩展以查看是否以某种方式配置了任何规则,但没有定义规则。

谢谢!

您可以像这样使用重写规则 (examplePage.aspx) 配置 web.config 文件:

<?xml version="1.0"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="examplePage.aspx Redirect" stopProcessing="true">
                    <match url="^(.*\/)*examplePage\.aspx$" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_METHOD}" negate="true" pattern="^POST$" />
                    </conditions>
                    <action type="Redirect" url="{R:1}" redirectType="Permanent"/>
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

希望有用!

我在开发中创建某种 Web 项目时看到过这种行为。所以它可能是安装了干扰的东西。我想您已经查看了 web.config,但如果没有,请尝试 machine.config。 此外,查看 IIS 本身,单击根级别(网站上方的级别)时安装的内容。

这对我们来说是个问题,因为我们开发了一个菜单系统,该系统通过根据当前页面的页面名称突出显示相应的菜单项来显示哪个页面处于活动状态 URL。我们最终修改了我们的代码,而不是只查找没有 .aspx 的 .contains("pagename"),而不是评估包括扩展名在内的完整页面名称。这工作正常,我们一直无法弄清楚到底是什么导致 URL 被重写。 None 以上答案已帮助确定我担心的问题。