【问题标题】:How to configure IIS 6.0 to use both default content page and wildcard application maps如何配置 IIS 6.0 以同时使用默认内容页面和通配符应用程序映射
【发布时间】:2008-10-25 00:39:12
【问题描述】:

在我拥有的文件系统中

/文件.aspx /目录/default.aspx

我想配置 IIS,使其返回适当的文件(添加 aspx 扩展名)或目录(默认内容页面),如下所示:

/文件-> /文件.aspx /目录-> /目录/default.aspx /directory/ -> /directory/default.aspx

我已将通配符应用程序映射集配置为 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll。当“验证该文件是否存在”未选中时,文件请求有效,但目录请求无效(返回 404)。勾选“验证文件是否存在”时,目录请求有效,但文件请求无效。

如何配置它以使文件和目录请求都可以工作?

【问题讨论】:

    标签: asp.net iis


    【解决方案1】:

    我推荐使用 UrlRewriter:

    http://urlrewriter.net/

    这使您可以创建所需的所有以上映射。您必须做的一件事(如果您使用的是 IIS 6 或更早版本)是配置 IIS,以便所有扩展都由 asp.net 处理。该文档解释了如何执行此操作。然后,您在 web.config(或我使用的单独的 rewriter.config)中以正则表达式的形式创建一堆规则来创建映射。

    顺便说一下,对于上面的示例,您可能不需要对最后两条规则执行任何操作。 IIS 会自动处理这些。对于第一条规则,它将类似于:

    <rewrite url="^/file$" to="/file.aspx" />
    

    您可以变得更聪明并编写通用规则,这样您就不必为每个文件编写一个规则。

    【讨论】:

      【解决方案2】:

      您必须添加将 / 请求映射到 default.aspx 的 ASP.NET global.asax 或 HttpModule。

      【讨论】:

      【解决方案3】:

      我查看了 url 重写,但最终决定采用更简单的解决方案。我只是将 file.aspx 移到一个目录中并将其重命名为 default.aspx。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-24
        • 2010-09-14
        • 2010-11-19
        • 2012-01-01
        • 2011-10-05
        • 2022-01-18
        • 2011-10-07
        • 2011-11-19
        相关资源
        最近更新 更多