IIS重写全局规则

IIS重写全局规则,iis,url-rewriting,iis-8,Iis,Url Rewriting,Iis 8,最近,我正在研究的网站以这种方式添加了语言处理:面向特定语言用户的内容将具有以baseUrl/[a-z]{2}-[a-z]{2}/..开头的URL(我可能更明确,因为这将捕获许多不适用于我的用例的内容)。默认语言将不可用。当前的默认语言有很多重写规则,我想要一种全局设置重写器使用的输入的方法,将其设置为“/”之后的URL路径或之后的URL路径([a-z]{2}-[a-z]{2}/)?应该直接位于“/”之后。我认为唯一有效的方法是将每个规则转换为正则表达式,并在每个规则的开头添加([a-z]{2}

最近,我正在研究的网站以这种方式添加了语言处理:面向特定语言用户的内容将具有以
baseUrl/[a-z]{2}-[a-z]{2}/..
开头的URL(我可能更明确,因为这将捕获许多不适用于我的用例的内容)。默认语言将不可用。当前的默认语言有很多重写规则,我想要一种全局设置重写器使用的输入的方法,将其设置为“/”之后的URL路径或
之后的URL路径([a-z]{2}-[a-z]{2}/)?
应该直接位于“/”之后。我认为唯一有效的方法是将每个规则转换为正则表达式,并在每个规则的开头添加
([a-z]{2}-[a-z]{2}/)?
。基本上,我希望将我所拥有的重写规则应用于此站点的子域。

如果在每个重写规则之后不停止处理,则可以添加一个规则,将语言“填充”到服务器变量中,该服务器变量本质上是HTTP头(允许查找服务器变量)。您可以正常处理您的规则,然后在检测到标题值时重新编写语言。

这是一个好主意,但在我的情况下,需要进行大量重构,因为一堆规则停止处理。URL模式目前是否与所有规则匹配?停止处理会让事情变得有点棘手,如果你死心塌地地不去触碰重写规则,你可以使用应用程序请求路由,在你的应用程序站点前面设置一个代理站点,按照上面所述在那里重写,然后在你的应用程序站点上重写语言。如果您这样做,我建议您在适合您的站点和内容的情况下启用基于磁盘的缓存。