将子文件夹重定向到子域并保持URL完好无损

时间:2014-08-27 08:19:28

标签: iis web-config rewrite iis-7.5 url-redirection

我想(临时(几个月顶))将子文件夹重定向到子域并保持网址完好无损。这是因为我们正在逐步将我们的网站移动到不同的服务器。

我们目前在IIS中有多个子应用程序,如:

  

www.ourdomain.com/shoppingcart
  www.ourdomain.com/backoffice

我们希望将这些内容重定向到其子域名:

  

shoppingcart.ourdomain.com
  backoffice.ourdomain.com

为此,我们将以下规则添加到web.config:

<rule name="MovedShoppingcart" stopProcessing="true">
    <match url="^shoppingcart/([_0-9a-z-/]+)" ignoreCase="true" />
    <action type="Redirect" url="http://shoppingcart.ourdomain.com/{R:1}" appendQueryString="true" />
</rule>

此规则适用于少数示例,但不适用于子文件夹:

  

www.ourdomain.com/shoppingcart - &gt; shoppingcart.ourdomain.com
  www.ourdomain.com/shoppingcart/foo - &gt; shoppingcart.ourdomain.com/foo

以上2都很好,但是当我添加另一个子文件夹时,它不起作用:

  

www.ourdomain.com/shoppingcart/foo/bar?id=temp - &gt; shoppingcart.ourdomain.com/foo?id=temp

(缺少/ bar /)

我的重写规则有什么问题?

1 个答案:

答案 0 :(得分:1)

在regexr中输入正则表达式时,该工具指示错误。

enter image description here

通过如下转义正斜杠,正则表达式应该可以正常工作。

^shoppingcart\/([_0-9a-z-/]+)