Я знаю, как канонизировать случай 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.