IIS中的URL中缺少.aspx 8
我已经使用Server 2012 R2和IIS设置了一台新服务器,并将应用程序发布到新网站。当我在开发环境中运行应用程序时,它在URL中显示.aspx文件扩展名,但是当我浏览IIS服务器上的发布实例时,它将删除.aspx扩展名。IIS中的URL中缺少.aspx 8
所以不知何故,它已经启用了某种URL重写 - 我怎么改变这个,因为我需要它与开发版本保持一致。我安装了URL Rewrite扩展,以查看是否配置了任何规则,但没有定义规则。
谢谢!
对我们来说,这是一个问题,我们开发了一个菜单系统,通过根据当前页面URL中的页面名称突出显示适当的菜单项来显示哪个页面处于活动状态。我们最终修改了代码,只是寻找.contains(“pagename”)而不使用.aspx,而不是评估包括扩展名在内的整个页面名称。这工作正常,我们还没有能够找出究竟是什么导致URL被重写。以上所有答案都没有帮助我确定这个问题。
所以你还有扩展名.aspx丢失?您验证的解决方案是绕过的,但无法解决您在扩展程序未显示时遇到的问题。 – krlzlx
你可以重写规则(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>
希望,应该工作!
Hi @ Asif.Ali是否应该将.aspx添加回URL?我已将它添加到applciation的web.config中,但没有看到任何区别。谢谢 – ebooyens
我在开发中创建某种Web项目时看到了这种行为。所以它可能是安装的干扰。我想你已经看过web.config的任何东西,但如果它不在那里尝试machine.config。 另外,看一下IIS本身,当你点击根级别(网站上面的那个)时安装的内容。
这发生在我们的生产服务器上,在开发服务器上它正常工作 - .aspx后缀在那里,但不在生产服务器上。我无法在生产服务器上找到任何自定义安装或配置,这是一个干净的安装。 – ebooyens
也许你的发布配置文件中有一个URL Rewrite,例如Web.Release.config,而不是在你的调试配置中? – krlzlx
@krlzlx不要感谢您的想法 – ebooyens