Заставить Sitecore обрабатывать любые запросы к файлу (.*)
Как можно заставить Sitecore обрабатывать любые запросы к файлам вместо получения 404 от IIS. Причина в том, что мы хотим иметь возможность применять модуль перезаписи URL ( http://github.com/ParTech/Url-Rewriter) для подачи запросов.
Пример: Пользовательские запросы: http://sitecore.domain/randomfolder/file.pdf (который существует)
Но вместо того, чтобы получить IIS "Ошибка HTTP 404.0 - не найдена через StaticFile", мы хотим, чтобы Sitecore принял запрос и применил все правила перезаписи, если они доступны, в противном случае используйте страницу не найденного Sitecore.
Я безуспешно пытался добавить разные обработчики в system.webserver, а также непосредственно изменять сопоставления обработчиков в настройках IIS.
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.
Имейте в виду, что он не проверен и не поддерживается для файловых запросов, которые будут обрабатываться этим модулем, но теоретически он должен работать.