IIS 重写规则条件不起作用

IIS Rewrite rule conditions is not working

提问人:Adam7908 提问时间:10/18/2023 最后编辑:Adam7908 更新时间:10/26/2023 访问量:65

问:

在过渡期间,我们将把网站语言重定向到一个信息页面。此重定向规则中包含一些条件,这些条件应允许某些 URL 仍可访问。 这些条件不起作用,很难找出为什么它看起来像......

url 匹配有效,但以下重写规则中的条件不起作用。 这些条件应允许这些 url 及其子项仍可访问。 我们使用这个网站来创建模式:https://www.regextester.com/

这是已创建的规则,不起作用:

    <rewrite>
      <rules>
        <clear />
        <rule name="Redirect swedish site" stopProcessing="true">
          <match url="sv(|\/.*)$" />
          <conditions logicalGrouping="MatchAny">
            <add input="{REQUEST_URI}" negate="true" pattern="rapporter(|\/.*)$" ignoreCase="true" />
            <add input="{REQUEST_URI}" negate="true" pattern="media/pressmeddelanden(|\/.*)$" ignoreCase="true" />          
          </conditions>
          <action type="Redirect" url="https://www.example.com" appendQueryString="true" redirectType="Permanent" />
        </rule>

      </rules>
    </rewrite>

编辑/更新:

以下代码解决了该问题

    <rule name="Redirect swedish branch rule" stopProcessing="true">
      <match url="^sv/(.*)" />
      <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_URI}" pattern="^/sv/rapporter/.*" negate="true" />
        <add input="{REQUEST_URI}" pattern="^/sv/media/pressmeddelanden/.*" negate="true" />
      </conditions>
      <action type="Redirect" url="https://www.example.com" appendQueryString="false" redirectType="Permanent" />
    </rule>
C# asp.net IIS url 重写 web-config

评论

0赞 Lex Li 10/18/2023
启用 FRT learn.microsoft.com/en-us/iis/extensions/url-rewrite-module/...,您将看到存在哪些值以及您是否编写了正确的模式。如果不考虑 IIS/HTTP 上下文,这些测试站点都无济于事。REQUEST_URI
0赞 samwu 10/19/2023
请举例说明您的需求,我将为您制作演示。

答: 暂无答案