0

我已经有一段时间不使用UrlRewrite插件中的<rewrite>规则了,这让我发疯了......

我想要完成的是将用户重定向到:

http://portals.presentkorttorget.se/GetRelationPdf.ashx?relationId=904

把他们送到

http://www.presentkorttorget.se/GetRelationPdf.ashx?relationId=904

只有 portals 更改为 www,我试图避免在 .NET 中进行重定向,再次编译并发布整个站点。

我试过的是:

<rewrite>
    <rule name="PDF redirect to parent shop" patternSyntax="ECMAScript" stopProcessing="true">
      <match url="portals\.(([a-z]+)\.([a-z]+))$/GetRelationPdf\.ashx\?$" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
      <action type="Redirect" url="http://www.{R:1}/GetRelationPdf.ashx?{R:2}" />
    </rule>
</rewrite>

以及我使用http://www.gskinner.com/RegExr/测试的正则表达式的一些变体

4

1 回答 1

0

要按照您的意愿重定向子域,您必须使用条件:

<rule name="PDF redirect to parent shop" patternSyntax="ECMAScript" stopProcessing="true">
  <match url="^GetRelationPdf\.ashx$" />
  <conditions>
        <add input="{HTTP_HOST}" pattern="portals\.(([a-z]+)\.([a-z]+))$" />
    </conditions>
  <action type="Redirect" url="http://www.{C:1}/GetRelationPdf.ashx" />
</rule>

此规则将检查以至少一个字母分隔的 2 个组的HTTP_HOST开头并包含 2 个组。 它还将检查请求的路径是否(不区分大小写)。portals..
GetRelationPdf.ashx

在重定向中,反向引用是 using {C:1},从条件中获取信息,并且查询字符串在触发重定向时默认附加。

于 2013-08-20T16:42:57.173 回答