使用 IIS6,如何将文件放在子文件夹中,但让它们像在根文件夹中一样使用?

StackOverflow https://stackoverflow.com/questions/45796

  •  09-06-2019
  •  | 
  •  

我们在 IIS 6 上运行的 ASP.NET 3.5 网站有两个团队正在添加内容:

  • 开发团队添加代码。
  • 业务团队添加简单的网页。

为了理智和组织,我们希望业务团队将他们的网页添加到项目中的子文件夹中:

根:用于开发团队的页面

内容:用于业务团队页面

我们希望用户能够导航到业务团队内容,而无需在其 URL 中附加“内容”,如下所述:

:默认.aspx (可以在:www.oursite.com/default.aspx)

内容:爆米花.aspx (可以在:www.oursite.com/popcorn.aspx)

有没有一种方法可以在 ISAPI 重写工具中为每个页面创建一个配置条目?

有帮助吗?

解决方案

我现在没有任何方法来测试这一点,但我认为您可以使用 RewriteCond 上的 -f 标志来检查任一目录中是否存在文件。

RewriteCond %{REQUEST_FILENAME} -!f
RewriteCond Content/%{REQUEST_FILENAME} -f
RewriteRule (.*) Content/(.*)

类似的东西也可能会满足您的需求。

其他提示

由于扩展名是 ASPX,ASP.NET 将接收请求...您可以编写一个 HttpModule 来检查产生 404 的页面,然后也检查子文件夹。

如果您知道具有某种格式的所有页面都将来自该文件夹,那么您可以在 ASP.NET 中重写 URL(在 Global.asax 或 HttpModule 中)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top