Url rewriting IIS URL重写-IIS 7.5

Url rewriting IIS URL重写-IIS 7.5,url-rewriting,iis-7,iis-7.5,Url Rewriting,Iis 7,Iis 7.5,我试图用IIS托管的web API实现某种目录结构。要求如下: 所有应用程序的URL中都应包含“/vas/”,例如: 在/vas/root本身上还应该有一个web api,只有在没有有效的子应用程序时才会命中该api,例如,该请求应该路由到“基本”web api应用程序中的控制器: 但鉴于存在一个名为“webapi1”的web api,该请求应按正常方式路由: 因此,挑战在于制定一条规则,所有以/vas/开头但未指向有效应用程序或web api的传入请求都应路由到在基本url上运行的we

我试图用IIS托管的web API实现某种目录结构。要求如下:

  • 所有应用程序的URL中都应包含“/vas/”,例如:
  • 在/vas/root本身上还应该有一个web api,只有在没有有效的子应用程序时才会命中该api,例如,该请求应该路由到“基本”web api应用程序中的控制器:
  • 但鉴于存在一个名为“webapi1”的web api,该请求应按正常方式路由:

    因此,挑战在于制定一条规则,所有以/vas/开头但未指向有效应用程序或web api的传入请求都应路由到在基本url上运行的web api

    我已经为IIS 7.5安装了URL重写模块,并尝试了不同的方法,但我的URL重写注册表没有按照我的要求执行。将所有请求路由到“基本”应用程序没有问题,但当我添加一个条件时,似乎所有路由都停止工作。我以前成功地将重写用于更简单的任务,但从未使用过这样的结构。我不确定最好的方法是让根应用程序在IIS中以“/vas”的形式运行,然后在下面创建嵌套的子应用程序,还是最好使用一个名称完全不同的简单虚拟目录,然后使用某种重写/重新路由


    我希望能够在本地IIS上实现这一点,而不是让网络管理员在负载平衡器中处理它

    IIS URL重写模块很难了解应用程序的逻辑,您应该在web应用程序内部使用ASP.NET路由等技术来了解逻辑。如果我有一条规则,可以说“如果请求URL不是以“/vas/[someprefix]开头,它实际上不必了解逻辑。”“然后将其发送到基础应用程序。然后,我可以确保我的所有子应用程序都使用这个前缀命名,并且路由应该有效。@LexLi:我同意你的建议,在我的应用程序中实现了一些简单的逻辑。我仍然希望在IIS中使用reg-ex,但就目前而言,这是可行的。谢谢