使用IIS6,如何将文件放置在子文件夹中,但是就像在根目录中一样来提供文件服务?
时间:2020-03-05 18:48:13 来源:igfitidea点击:
我们在IIS 6上运行的ASP.NET 3.5网站有两个团队正在添加内容:
- 开发团队添加代码。
- 业务团队添加简单的网页。
为了保持理智和组织,我们希望业务团队将其网页添加到项目的子文件夹中:
Root: for pages of development team Content: for pages of business team
但
我们希望用户能够导航到业务团队的内容,而不必在其URL中添加"内容",如下所述:
Root: Default.aspx (Available at: www.oursite.com/default.aspx) Content: Popcorn.aspx (Available at: www.oursite.com/popcorn.aspx)
我们是否可以通过一种方法来在ISAPI重写工具中为这些页面中的每个页面创建配置条目?
解决方案
回答
由于扩展名将是ASPX,因此ASP.NET将接收请求...我们可以编写HttpModule来检查生成404的页面,然后还检查子文件夹。
如果我们知道所有具有某种格式的页面都将来自该文件夹,则只需重写ASP.NET中的URL(在Global.asax或者HttpModule中)。
回答
我目前没有任何方法可以对此进行测试,但是我认为我们可以在RewriteCond上使用-f标志来检查两个目录中是否存在文件。
RewriteCond %{REQUEST_FILENAME} -!f RewriteCond Content/%{REQUEST_FILENAME} -f RewriteRule (.*) Content/(.*)
诸如此类的事情也可能会满足需求。