Назад | Перейти на главную страницу

IIS7.5 Outbound Rule for lower case URLs in <a href="“…”"></a>

Я знаю, как канонизировать случай 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 меня не оправдали: я нашел этот но «Определяет синтаксис значения для правила. Этот элемент доступен только для типа действия Rewrite» не совсем исчерпывающий).

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

У меня это правило работает без ошибок. Единственное изменение, которое нужно внести, - это узор. Измените его с «[A-Z]» на «. * [A-Z]. *», Чтобы заменяемым значением была вся строка, а не только первая заглавная буква.

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