如何配置IIS 6.0以使用默认内容页面和通配符应用程序映射

时间:2008-10-25 00:39:12

标签: asp.net iis

在我有的文件系统中

    /file.aspx
    /directory/default.aspx

我想配置IIS,以便它返回相应的文件(添加aspx扩展名)或目录(默认内容页面),如下所示:

    /file -> /file.aspx
    /directory -> /directory/default.aspx 
    /directory/ -> /directory/default.aspx

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

如何配置文件和目录请求?

3 个答案:

答案 0 :(得分:1)

我建议使用UrlRewriter:

http://urlrewriter.net/

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

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

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

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

答案 1 :(得分:0)

您必须添加一个ASP.NET global.asax或HttpModule,它将/ request映射到default.aspx。

答案 2 :(得分:0)

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