【问题标题】:Missing .aspx in URL in IIS 8IIS 8 中的 URL 中缺少 .aspx
【发布时间】:2018-03-21 18:06:52
【问题描述】:

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

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

谢谢!

【问题讨论】:

  • 也许你的发布配置文件中有 URL Rewrite,例如 Web.Release.config 而不是你的调试配置?
  • @krlzlx 不怕,但谢谢你的想法

标签: asp.net url-rewriting iis-8


【解决方案1】:

您可以像这样使用重写规则(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>

希望这会奏效!

【讨论】:

  • 嗨@Asif.Ali 这应该将.aspx 添加回URL吗?我已将它添加到应用程序的 web.config 中,但没有发现任何区别。谢谢
【解决方案2】:

我在开发中创建某种 Web 项目时看到了这种行为。因此,可能是安装了干扰的东西。我猜你已经查看了 web.config 的任何内容,但如果它不存在,请尝试 machine.config。 另外,查看 IIS 本身,单击根级别(网站上方的那个)时安装了什么。

【讨论】:

  • 这发生在我们的生产服务器上,在开发服务器上它正常工作 - .aspx 后缀在那里但不在生产服务器上。我在生产服务器上找不到任何自定义安装或配置,它是全新安装。
【解决方案3】:

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

【讨论】:

  • 所以您仍然缺少扩展名 .aspx?您验证的解决方案是一种绕过方法,但不能解决您遇到的扩展程序未显示的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 2011-02-05
  • 2020-06-14
  • 1970-01-01
相关资源
最近更新 更多