【问题标题】:Simple IIS Redirection expression ("*") throws an error: The expression "*" contains a repeat expression简单 IIS 重定向表达式 ("*") 引发错误:表达式 "*" 包含重复表达式
【发布时间】:2011-10-27 23:00:51
【问题描述】:

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

我将它放在 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>

但是,这会引发此错误:

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

有什么想法吗?

【问题讨论】:

  • 也许您可以尝试使用“.*”作为值,看看它是否有效。

标签: iis iis-7 url-rewriting


【解决方案1】:

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

<match url=".*" />

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

【讨论】:

    猜你喜欢
    • 2018-09-01
    • 1970-01-01
    • 2020-09-07
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 2014-06-21
    相关资源
    最近更新 更多