Обойти большие разделы конфигурации RewriteMap - PullRequest
7 голосов
/ 15 ноября 2011

Кто-нибудь знает, как можно разделить большой (550 КБ) файл перезаписи на более мелкие разделы?

Проблема, с которой мы столкнулись, состоит в том, что на старом сайте были тысячи URL-адресов, которые необходимо сопоставить, но мы не можем отобразить их из-за ограничения в 250 КБ.строки:

<rewrite>
    <rewriteMaps>
        <rewriteMap configSource="config\RewriteMaps.LargePart1.config" />
        <rewriteMap configSource="config\RewriteMaps.LargePart2.config" />
        <rewriteMap configSource="config\RewriteMaps.LargePart3.config" />
        <rewriteMap configSource="config\RewriteMaps.LargePartX.config" />
    </rewriteMaps>
</rewrite>

Однако проблема заключается в том, что узлы rewriteMap не являются разделами, поэтому не могут использовать configSource.Кто-нибудь до этого придумывал элегантное решение?

Ответы [ 2 ]

0 голосов
/ 10 июля 2018

Мы надолго застряли в этом, и в итоге мы написали наш собственный редиректор 301. В sitecore это было в конвейере, исправленном после ItemResolver, который потребляет большой файл (не включенный ни в один файл Web.configs). Мы не могли использовать опцию «взлом реестра», так как это приложение-служба Azure, и нет (простого и дешевого) доступа к реестру.

0 голосов
/ 03 марта 2015

Я тоже сталкивался с этой проблемой и искал решения. В модулях IIS нет ничего, что могло бы сделать это (переписывание карт между несколькими файлами)

Я решил это - старый добрый способ DOS:)

У меня был большой файл карты перезаписи (50000+ записей) с логически (!) Именованными участками карты. Что я сделал, так это сохранил каждую карту в своем собственном текстовом файле. Map1.config Map2.config Map3.config

У меня есть header.config, который содержит две строки

<rewrite>
    <rewriteMaps>

и footer.config имеет

</rewriteMaps>

Каждый конфиг карты начинается с соответственно названного <rewriteMap name="Map name" defaultValue="">, содержит все изменения, которые я хочу подключить, а затем заканчивается тегом </rewriteMap>.

ЗАКЛЮЧИТЕЛЬНО - чтобы создать мой полный файл, я использую команду COPY в DOS! Я настроил пакетный файл для генерации этого GenerateRewriteConfig.bat, который в основном делает это

COPY header.config + Map1.config + Map2.config + Map3.config + footer.config MySiteRewriteMaps.config

Для текущих обновлений я изменяю соответствующий файл конфигурации MAP и запускаю GenerateRewriteConfig.bat!

Сейчас я работаю над автоматическим сценарием для извлечения различных карт в отдельные файлы (на случай, если у кого-то СЛИШКОМ МНОГО карт и ему нужно использовать этот инструмент). Я отправлю обновление через несколько недель.

Надеюсь, это кому-нибудь поможет!

...