Отключить IIS7 URL Переписать наследование для каждого сайта? - PullRequest
5 голосов
/ 04 августа 2011

У меня есть много глобальных правил перезаписи URL IIS7, и они по умолчанию применяются ко всем сайтам.Ну, есть несколько сайтов, на которых я хотел бы отключить наследование переписывания для всех правил.Как я могу это сделать?Я без радости попробовал следующее:

 <rewrite>
<rules>
    <clear />
</rules>
  </rewrite>

Ответы [ 2 ]

4 голосов
/ 05 августа 2011

Извините, этого нельзя сделать:

Глобальные правила перезаписи используются для определения логики перезаписи URL для всего сервера.Эти правила определены в файле applicationHost.config , и их нельзя переопределить или отключить на более низких уровнях конфигурации, таких как сайт или виртуальный каталог .Глобальные правила всегда работают с абсолютным URL-путем (то есть запрошенным URI без имени сервера).

и

Глобальный набор правил всегда оценивается первым, а затемэтот распределенный набор правил будет оцениваться с использованием строки URL, созданной глобальным набором правил.

http://learn.iis.net/page.aspx/468/using-global-and-distributed-rewrite-rules/

0 голосов
/ 24 января 2018

Если вы можете переместить необходимую функциональность из глобальных правил в файл web.config для своих сайтов, вы можете добавить условие для каждого правила, чтобы либо подписывать, либо отказываться от каждого правила на основеналичие локального файла для этого сайта.Это позволит вам развернуть общий набор кода и конфигурации, но с локальной настройкой / настройкой для каждого сайта.

Пример правила подписки:

        <rule name="HTTP to HTTPS Redirect" stopProcessing="true">
            <match url="(.*)" />
            <conditions logicalGrouping="MatchAll">
                <add input="{HTTPS}" pattern="off" />
                <!-- Opt-in to rule via presense of a local file -->
                <add input="{DOCUMENT_ROOT}/Local/rewrite-rule-enable-https.txt" matchType="IsFile" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
        </rule>

Примечание.папка не развернута, а скорее используется для хранения файлов для сайта.

Таким образом, по сути это правило не включается, если в / Local не найден файл с именем "rewrite-rule-enable-https.txt"папка на сайте.

...