Модуль urlrewrite IIS7 - правила во внешнем XML-файле

Я использую модуль IIS7 UrlRewrite. Я установил свои правила в разделе web.config <system.webServer><rewrite>. Я хочу знать, есть ли способ определить правила в одном внешнем XML-файле, а не в файле web.config. Спасибо.


person opaera    schedule 22.09.2010    source источник
comment
Не то, что я знаю из. Зачем тебе это нужно?   -  person Remy    schedule 23.09.2010
comment
@Remy: Поздний ответ, но он увеличивает удобочитаемость web.config, когда у вас много правил перезаписи. Во всяком случае, это причина для меня.   -  person magnattic    schedule 25.10.2013
comment
в IIS ›= 7.5 не забудьте установить компонент URL Rewrite отсюда iis.net/downloads/microsoft / url-rewrite   -  person Riccardo Bassilichi    schedule 20.02.2018


Ответы (2)


Да, вы можете использовать атрибут configSource для указания на внешний файл, как вы можете использовать другие разделы web.config. В web.config:

<rewrite>
    <rules configSource="Rewrite.config" />
</rewrite>

И в файле конфигурации правил:

<rules>
    <rule name="some rule">
        <!-- rule details here --->
    </rule>
</rules>

Вы по-прежнему можете использовать диспетчер IIS для редактирования правил, и он будет работать. Одно небольшое предостережение в отношении этого подхода: когда вы вносите изменения и сохраняете внешний файл, подобный этому, он не будет перезапускать приложение, как изменение в web.config. Так что, если вы редактируете правило и хотите, чтобы оно вступило в силу, вам нужно вручную протолкнуть web.config, отредактировав и сохранив его.

Другая ссылка: Перемещение раздела перезаписи URL-адреса IIS7 из файла web.config < / а>

person Kurt Schindler    schedule 25.06.2011
comment
@atticae Я считаю, что RestartOnExternalChanges применяется только к настраиваемым элементам ‹section›, к которым правила перезаписи не относятся. forum.iis.net/t/1155629.aspx Я не уверен, что с тех пор изменилось, эта ветка с 2009 года ... - person Kurt Schindler; 25.10.2013
comment
К сожалению, IntelliSense в Rewrite.config не работает. Есть ли способ решить эту проблему? - person Valerio Gentile; 11.09.2015

Вы можете использовать образцы поставщиков перезаписи URL-адресов, которые включают один для их хранения в отдельном файле, см .: http://www.iis.net/learn/extensions/url-rewrite-module/using-custom-rewrite-provider-with-url-rewrite-module

person Carlos Aguilar Mares    schedule 25.09.2010
comment
но это для сопоставлений. Config используется для другой цели, для установки пользовательских правил. иногда нам нужно использовать выражение reg для всех необходимых нам сопоставлений URL-адресов, тогда единственный способ - включить его в config. - person Blue Clouds; 04.05.2016