2008-10-25 33 views
2

文件系统中的我有如何IIS 6.0配置为使用两个默认的内容页和通配符应用程序映射

 
    /file.aspx 
    /directory/default.aspx 

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

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

我已经配置了通配符应用程序映射设置为C:\ Windows \ Microsoft.NET \框架\ V2.0.50727 \ ASPNET_ISAPI.DLL。当“验证该文件存在”未选中时,文件请求有效,但不是目录请求(返回404)。当“验证该文件存在”被选中时,目录请求起作用,但不是文件请求。

如何配置它以便文件和目录请求都能正常工作?

回答

0

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

0

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

+0

你能否提供更多的细节? – 2008-10-26 19:46:00

1

我建议使用UrlRewriter:

http://urlrewriter.net/

这允许你创建上面,你的愿望的所有映射。你必须做的一件事(如果你使用的是IIS 6或更早的版本)是配置IIS,以便所有的扩展都由asp.net处理。文档解释了如何做到这一点。然后,在你的web.config中创建一堆规则(或者像我使用的那样分开rewriter.config),以正则表达式的形式创建你的映射。

顺便说一句,对于上面的例子,你可能不需要为最后两条规则做任何事情。 IIS将自动处理这些内容。对于第一条规则将是这样的:

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

你可以得到更聪明,写通用的规则,这样你就不必写每个文件一个规则。

相关问题