2016-09-13 2 views
1

Использование модуля 301 Redirect для Sitecore 7, у меня возникла проблема с установкой правильных значений Requested Expression и Source для использования в модуле переадресации Sitecore. У меня есть пример url, который обычно получает запрос, который я хочу перенаправить на домашнюю страницу сайта.Модуль ретрансляции Sitecore Regex Pattern Matching

На примере запросов URL-адреса содержат excite.com в конце URL:

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) но я не могу, чтобы жизнь меня поняла.

+0

Какой перенаправлять модуль вы используете? На рынке есть несколько, и все они работают несколько иначе. – jammykam

+0

Я использую модуль 301 Redirect – tonyrocks

ответ

3

Я не использовал 301 Redirect Module, но использовал аналогичные модули. Есть два вопроса, которые необходимо решить.

Вам необходимо создать перенаправление, используя перенаправление соответствия шаблонов. Регулярное выражение вам нужно «соответствовать любой запрос, который заканчивается /excite.com»

.*(/excite.com)$

Другой вопрос заключается в том, что Sitecore видит .com часть URL в качестве расширения, а затем фильтрации запроса. Вы должны добавить 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> 

Изменить регулярное выражение для (excite.com)$|.*(/excite.com)$, если вы хотите, чтобы соответствовать http://ww.example.com/excite.com

+0

Это сработало отлично! 1) шаблон (хотя мне нужно было настроить его для 301 модуля переадресации как^https: //www.example.com/products/foods/ (. +)/(. +)/(. +) .com $) 2) Добавление com в качестве разрешенного расширения. – tonyrocks