Sitecore 重定向模块正则表达式模式匹配

Sitecore Redirect module Regex Pattern Matching

使用 Sitecore 7 的 301 重定向模块时,我在建立正确的请求表达式和源值以在 Sitecore 重定向模块中使用时遇到问题。我有一个示例 url,它通常会收到我希望重定向到网站主页的请求。

示例url请求都包含URL末尾的excite.com:

https://www.example.com/products/foods/apples/excite.com
https://www.example.com/products/foods/oranges/excite.com
https://www.example.com/products/foods/pears/excite.com

我希望将这些末尾包含 excite.com 的请求重定向到主页 (https://www.example.com),但我这辈子都弄不明白。

我没用过301 Redirect Module但是用过类似的模块。有 2 个问题需要解决。

您需要使用模式匹配重定向创建重定向。您需要的正则表达式是 "match any request that ends with /excite.com"

.*(/excite.com)$

另一个问题是 Sitecore 将 url 的 .com 部分视为扩展,然后过滤请求。您需要将 com 添加到允许的扩展列表中。

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
      <preprocessRequest>
        <processor type="Sitecore.Pipelines.PreprocessRequest.FilterUrlExtensions, Sitecore.Kernel">
          <param desc="Allowed extensions (comma separated)">aspx, ashx, asmx, com</param>
        </processor>
      </preprocessRequest>      
    </pipelines>    
  </sitecore>
</configuration>

综上所述,如果您使用的是 IIS 重写模块,那么您只需在其中添加一个规则,该规则将在您访问 Sitecore 管道之前得到解析和重定向,因此您无需担心允许的扩展过滤器。

<rules>  
  <rule name="Redirect excite.com" stopProcessing="true">
    <match url=".*(/excite.com)$" />
    <action type="Redirect" url="https://{HTTP_HOST}" appendQueryString="false" />
  </rule>
</rules>

如果您还希望它匹配 http://ww.example.com/excite.com

,请将正则表达式更改为 (excite.com)$|.*(/excite.com)$