【问题标题】:Why doesn't IIS7.5 show my default document with URL rewriting?为什么 IIS7.5 不显示带有 URL 重写的默认文档?
【发布时间】:2012-07-23 13:59:20
【问题描述】:

我正在使用 IIS7.5。我有一个简单的 ASP.NET 网络表单站点,它在 global.asax 中使用基本的 URL 重写,拦截对 .aspx 页面的请求并将它们传递给各种模板页面。

例如,您可以请求http://www.mysite.com/default.aspx。在 global.asax 中,我首先检查它是否作为“真实”页面存在。如果没有,我会去数据存储获取详细信息并重定向到 template.aspx?page=default(或类似的东西)。

这一切都很好。但是,有一个问题。如果我浏览到http://www.mysite.com/default.aspx 我会得到我期望的页面。如果我在 web.config 或 IIS 中将默认文档设置为 default.aspx,然后浏览到 http://www.mysite.com/ 我会收到关于不允许浏览目录的错误。

在这种情况下,为什么 IIS 会忽略默认文档?这似乎是因为文件“default.aspx”不存在。如果是这种情况,是否有解决该问题的方法?

编辑

澄清一下,我无法控制 IIS 系统,它位于非常基本的主机上,尽管我可以请求一些更改,所以我不能使用任何 URL 重写模块。

【问题讨论】:

  • 那么 default.aspx 是您网站上的实际页面吗?
  • 没有物理的default.aspx文件,没有。
  • 没有物理文件是不行的。阅读此technet.microsoft.com/en-us/library/cc753615%28v=ws.10%29.aspx
  • 针对您的情况的解决方法:将 Index.aspx 创建为默认文档作为物理文件并将用户重定向到 Default.aspx URL。因此,当用户访问 mysite.com/ 时,index.aspx 将启动并强制重定向到 default.aspx,然后它可以处理您的模板重定向逻辑。
  • 另外,您可以检查您的托管服务提供商是否已经安装了 Url Rewrite,然后您可以这样处理。

标签: asp.net iis iis-7.5


【解决方案1】:

针对您的情况的解决方法:将 Index.aspx 创建为默认文档作为物理文件并将用户重定向到 Default.aspx URL。因此,当用户访问 mysite.com/ 时,index.aspx 将启动并强制重定向到 default.aspx,然后它可以处理您的模板重定向逻辑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 2011-03-03
    相关资源
    最近更新 更多