繁体   English   中英

如何区分ASP.NET中的/(root)和/default.aspx

[英]How to differentiate between / (the root) and /default.aspx in ASP.NET

Request.RawUrl始终返回/default.aspx变体。 我没有发现在所有任何方式对这些网址进行区分。 有谁知道怎么做? IIS 7上的环境是.NET 3.5SP1。

在设计我的URL重写器时,我实际上不得不解决同样的问题。 它与您甚至可以访问URL之前发生的过程有关。 要解决此问题,您必须确保在IIS 7中关闭默认页面处理。 因为如果没有默认的页面处理,它将不会经历尝试将其映射到驱动器的额外步骤,因此您将是所请求的确切URL。 但这可能是也可能不是一个选项,具体取决于您是否使用System.Web.Routing

要关闭默认页面处理,您需要执行以下操作:

  1. 在IIS中转到您的站点
  2. 转到默认文档
  3. 单击右上角的“ 禁用 ”。

或者您可以将以下内容添加到web.config

<system.webServer>
    <!-- ... other tags here ... -->
    <defaultDocument enabled="false" />
</system.webServer>

执行此操作后,默认文档将不再添加到您的URL。 但是注意,由于这不再是活动的,你不能依赖default.aspx实际映射到你的目录,你必须手动处理它或使用像System.Web.Routing这样的东西来处理这个功能。

要在IIS 6中完成相同的操作,您需要打开通配符:

以下说明适用于IIS 6。

  1. 打开IIS并右键单击网站并选择“属性”。
  2. 单击“应用程序设置”部分下的“配置”按钮
  3. 单击“插入...”按钮以创建新的通配符映射
  4. 将可执行文本框设置为aspnet_isapi.dll文件位置。 for .net 2.0,3.0,3.5:C:\\ Windows \\ Microsoft.NET \\ Framework \\ v2.0.50727 \\ aspnet_isapi.dll
  5. 确保未选中“验证文件是否存在”复选框。
  6. 按“确定”确认并关闭所有窗口。

注意:顺便提一下,我在上面链接的网站上提供了所有来源的方式,你很好奇我是怎么做的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM