[锚标签链接的IIS出站规则URL重写方案

问题描述 投票:0回答:1

我一直在寻找一些其他有关如何执行URL重写的信息,其中预期的输出是删除/替换部分URL。

例如,我想确保所有锚标签的href值都将被修改。

<a class="button" href="https://www.oldgoogle.com" target="_blank">
<a class="button" href="https://www.oldgoogle.com/links" target="_blank">
<a class="button" href="https://www.oldgoogle.com/links/category?dosearch=true" target="_blank">
<a class="button" href="https://oldgoogle.com/nowww" target="_blank">

这样href值就变成这样:

<a class="button" href="https://newgoogle.com" target="_blank">
<a class="button" href="https://newoogle.com/links" target="_blank">
<a class="button" href="https://newgoogle.com/links/category?dosearch=true" target="_blank">
<a class="button" href="https://newgoogle.com/nowww" target="_blank">

请注意,我实际上是从网址中删除www,并且将oldgoogle替换为newgoogle

这是我到目前为止尝试过的:

<rewrite>
  <outboundRules>
    <remove name="Strip WWW from Anchor Tags" />
    <rule name="Strip WWW from Anchor Tags" preCondition="IsHTML">
      <match filterByTags="A" pattern="^http(s)://www.oldgoogle.com/(.*)" />
      <conditions />
      <action type="Rewrite" value="https://newgoogle.com/{R:1}" />
    </rule>
  </outboundRules>
</rewrite>

感谢您可以共享以解决此问题的任何信息。

P.S。我们无法修改来自源的链接,因为这些链接都散布在外部文本文件,数据库表和其他源的网络中,并且一些硬编码规则按原样编写了链接。因此,我在表上唯一的选择是重写应用程序生成和发出的链接。

url iis url-rewriting iis-7
1个回答
1
投票

您可以尝试使用以下规则:

<outboundRules>
              <rule name="rule1" preCondition="ResponseIsHtml1" stopProcessing="true">
                <match filterByTags="A" pattern="http(s)://(www.)?oldgoogle.com(.*)" />
                <action type="Rewrite" value="https://newgoogle.com{R:3}" />
            </rule>
            <preConditions>
                <preCondition name="ResponseIsHtml1">
                    <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
                </preCondition>
            </preConditions>
        </outboundRules>

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.