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)$
使用 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)$