在我有的文件系统中
/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)。选中“验证文件是否存在”时,目录请求有效,但不是文件请求。
如何配置文件和目录请求?
答案 0 :(得分:1)
我建议使用UrlRewriter:
这允许您创建上面所需的所有映射。您必须做的一件事(如果您使用的是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。