
Я застрял на очень простом правиле перезаписи IIS. У меня есть ряд ссылок с недействительным путем, и мне нужно перенаправить все запросы к этому пути на новый.
Вот прерывистый путь: https://documentation.buzsoftware.com/buzdocs/BuzClubManager/index.cfm?ID=690
Часть пути «buzdocs» больше не существует, и все ссылки ниже этого пути были перемещены на одну папку выше в этот пример пути (который работает): https://documentation.buzsoftware.com/BuzClubManager/index.cfm?ID=690
<rule name="buzdocs_path_del" stopProcessing="true">
<match url="(.*)/buzdocs(.*)" />
<action type="Rewrite" url="{R:1}{R:2}" appendQueryString="false" />
</rule>
или
<rule name="buzdocs_path_del" stopProcessing="true">
<match url="https://documentation.buzsoftware.com/buzdocs(.*)" />
<action type="Rewrite" url="https://documentation.buzsoftware.com/{R:1}" appendQueryString="false" />
</rule>
Я перепробовал множество шаблонов регулярных выражений, и каждый раз, когда я перехожу по неверному пути, я получаю ошибку 404, и перенаправление не происходит.
Я не уверен, нужно ли использовать ^ (начало строки) или $ (конец строки) при сопоставлении с образцом. Я пробовал оба варианта, но результат был одинаковым.
Использование только {R:1} (первый пример) против использования {R:1} и {R:2} (второй пример), не уверен, какой из способов правильный. Любые комментарии о передовой практике были бы полезны.
Я также метался между <action type="Rewrite"
и <action type="Redirect"
, без каких-либо изменений.
Эти ссылки ведут на работающий сайт, смело переходите по ним. Спасибо за любые советы, я почти уверен, что упускаю что-то маленькое, и я, вероятно, стукнусь головой об стол из-за этого.