Принуждение Sitecore обрабатывать любые запросы к файлу (.*)

Как можно заставить Sitecore обрабатывать любые файловые запросы вместо получения 404 от IIS. Причина в том, что мы хотим иметь возможность применять модуль перезаписи URL (http://github.com/ParTech/Url-Rewriter) для подачи запросов.

Пример. Запросы пользователей: http://sitecore.domain/randomfolder/file.pdf (какие не существуют)

Но вместо получения IIS «Ошибка HTTP 404.0 — Not Found via StaticFile» мы хотим, чтобы Sitecore принял запрос и применил любые правила перезаписи, если они доступны, в противном случае используйте страницу Sitecore notfound.

Я безуспешно пытался добавить разные обработчики в system.webserver, а также напрямую изменить сопоставления обработчиков в настройках IIS.


person KMN    schedule 26.11.2014    source источник


Ответы (1)


Я не уверен, стоит ли вам идти туда, потому что тогда все запросы будут проходить через Sitecore, но если вы хотите, вы можете изменить эту конфигурацию:

<preprocessRequest>
  <processor type="Sitecore.Pipelines.PreprocessRequest.FilterUrlExtensions, Sitecore.Kernel">
    <param desc="Allowed extensions (comma separated)">aspx</param>
    <param desc="Blocked extensions (comma separated)">*</param>
    <param desc="Blocked extensions that stream files (comma separated)">css,js</param>
    <param desc="Blocked extensions that do not stream files (comma separated)">*</param>
  </processor>
</preprocessRequest>

Установите для разрешенных расширений значение *, а для заблокированных расширений установите пустое значение (не проверено).
Если вы знаете, какие расширения вы собираетесь перенаправлять (например, только файлы PDF), укажите только те из них, которые указаны в разрешенных расширениях настройка (я бы посоветовал вам это сделать).

<param desc="Allowed extensions (comma separated)">aspx,pdf</param>

Я думаю, что это единственное, что нужно для обработки запроса модулем перезаписи URL.
Имейте в виду, что он не проверен и не поддерживается для обработки файловых запросов этим модулем, но теоретически он должен работать.

person Ruud van Falier    schedule 26.11.2014
comment
Это может работать не только в теории, но и на практике! Спасибо за ваше предложение, теперь оно помечено как жизнеспособное решение, спасибо. - person KMN; 26.11.2014
comment
В качестве примечания я попытался использовать * для разрешенных расширений и очистить заблокированные расширения с помощью Sitecore 8, и это сломало редактор опыта. - person Matthew Dresser; 14.10.2015