简单的IIS重定向表达式(“*”)引发错误:表达式“*”包含重复表达式

时间:2011-10-27 07:25:16

标签: iis iis-7 url-rewriting

我有世界上最简单的正则表达式:*

我把它放在IIS的网站上,因为我希望其中一个网站成为代理,而其他网站则是本地服务。所以,web.config是:

<system.webServer>
    <rewrite> 
      <rules>
        <rule name="AllRewrite" stopProcessing="true">
          <match url="*" />
          <action type="Rewrite" url="http://tom-pc/{R:0}" />
        </rule>
      </rules>
    </rewrite> 
</system.webServer>

但是,这会引发此错误:

  

表达式“”包含一个重复表达式(在大多数情况下,'','?','+','{'之一),前面没有表达式。

有什么想法吗?

1 个答案:

答案 0 :(得分:6)

错误说明了一切。您的正则表达式无效。 *是重复字符(零次或多次)。您应指明允许重复哪个字符零次或多次。你可能想要任何角色,所以你的正则表达式应该是:。*

<match url=".*" />

要回答关于代理的其他问题,不可能通过重写到其他主机名进行代理。您只能在同一服务器上重写其他URI。要使用IIS代理,您必须安装ARR(应用程序请求路由)模块。