Правило IIS7.5 для исходящих URL-адресов в <a href="...">

Я знаю, как канонизировать регистр URL-адресов при входящем запросе к IIS7.5, фактически есть встроенный шаблон правил, с которого можно начать. Но как насчет исходящих (без изменения кода)?

Вот где я дошел до сих пор:

    <outboundRules>
        <rule name="Outbound lowercase" preCondition="IsHTML" enabled="true">
            <match filterByTags="A" pattern="[A-Z]" ignoreCase="false" />
            <action type="Rewrite" value="{ToLower:{R:0}}" />
        </rule>
        <preConditions>
            <preCondition name="IsHTML">
                <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
            </preCondition>
        </preConditions>
    </outboundRules>

Однако IIS блокирует действие с 500, что подразумевает недопустимый web.config, вероятно, в {ToLower:XXXX}, который я украл из предоставленного MS шаблона входящего правила.

Кто-нибудь знает, как это сделать?

Любой, кто знает, где эти параметры полностью задокументированы (мои навыки GoogleNinja не помогли мне: я обнаружил это, но "Указывает синтаксис значения для правила. Этот элемент доступен только для типа действия Перезапись" не является действительно полным).

Спасибо Дамиан

1 ответ

Решение

Это правило работает для меня без каких-либо ошибок. Единственное изменение, которое нужно сделать - это шаблон. Измените его с "[AZ]" на ".*[AZ].*", Чтобы заменяемое значение представляло собой всю строку, а не только первую заглавную букву.

Что касается способа получения синтаксической ошибки, есть ли у вас исходящее правило, заключенное в раздел? И убедитесь, что у вас установлен url rewrite 2.0. Исходящие правила были добавлены в версии 2.0.

Другие вопросы по тегам