Правило 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.