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

Tom*_*nza 2 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>
Run Code Online (Sandbox Code Playgroud)

但是,这会引发此错误:

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

有任何想法吗?

Mar*_*urg 6

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

<match url=".*" />
Run Code Online (Sandbox Code Playgroud)

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