【问题标题】:Redirecting with <rewrite> in web.config not redirecting在 web.config 中使用 <rewrite> 重定向而不是重定向
【发布时间】:2021-09-14 23:15:27
【问题描述】:

我写了一条规则,但它不起作用。

我需要将testsitearticles 重定向到about-park/blog

  <rule name="Redirect Articles" enabled="true" stopProcessing="true">
    <match url="articles" />
    <conditions>
      <add input="{HTTP_HOST}" pattern="^testsite.co.uk$" />
    </conditions>
    <action type="Redirect" url="http://{HTTP_HOST}/about-park/blog/" appendQueryString="false" />
  </rule>

如果网址是https://www.testsite.co.uk/articles/testpage,那么它应该重定向到https://www.testsite.co.uk/about-park/blog/testpage

同样,https://www.testsite.co.uk/articles/1/testinghttps://www.testsite.co.uk/about-park/blog/1/testing

【问题讨论】:

  • 如果您删除条件,您的重定向是否有效?
  • 不,它不起作用@AliReza
  • 所以您的问题可能与规则无关。检查您的 web.config 格式和 iis 模块
  • 试试这个模式/testsite.co.uk/
  • 不,它没有用

标签: c# .net iis url-rewriting web-config


【解决方案1】:

您可以使用重写功能。

例如


<rule name="Articles">
    <match url="^(.*)/articles/(.*)" />
    <action type="Rewrite" url="{R:1}/about-park/blog/{R:2}" />
</rule>

注意:如果要重定向,只需将动作类型中的 Rewrite 更改为 Redirect 即可。

【讨论】:

    【解决方案2】:

    对于这个要求,你可以参考我下面的重定向规则示例:

    <rule name="Articles">
        <match url="^articles/(.*)" />
        <conditions>
          <add input="{HTTP_HOST}" pattern="^www.testsite.co.uk$" />
        </conditions>
        <action type="Redirect" url="http://{HTTP_HOST}/about-park/blog/{R:1}" />
    </rule>
    

    请注意,与 AliReza 提供的解决方案相比,有一些改进。首先,如果我们在articles/(.*)之前添加/,则无法匹配规则。其次,如果请求的url是https://www.testsite.co.uk/abc/articles/testpage,如果使用他的重定向规则示例,它将被重定向到https://www.testsite.co.uk/abc/about-park/blog/testpage

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 2012-04-18
      • 2019-04-12
      • 2019-03-25
      • 1970-01-01
      • 2011-05-06
      相关资源
      最近更新 更多