Мои навыки регулярных выражений ограничены, но мне удалось придумать выражение, которое, кажется, соответствует тому, что я хочу, но проблема в том, что я использую соответствующую часть моего выражения.
Правило следующее:
<rule name="FixDestinationCategories" stopProcessing="false">
<match url="^([^\/]+\/){2,4}category/([^\/]+\/){2}/?$" />
<action type="Redirect" appendQueryString="true" redirectType="Permanent" url="{R:1}" />
</rule>
Пример URL может быть следующим:
country/destinations/itineraries/itinerary/category/region/country/
another/directory/category/region/country/
Из-за проблемы на сайте я пытаюсь 301 перенаправить ссылки на сайт, чтобы удалить последние 3 сегмента URL. Число сегментов до этого может варьироваться от 2 до 4. Я хочу захватить весь путь до /category/region/country/
, я также должен убедиться, что результирующий путь заканчивается косой чертой, чтобы перенаправления в приведенных выше примерах в конечном итоге:
country/destinations/itineraries/itinerary/
another/directory/
Однако, как и в данный момент, мои URL-адреса перенаправления заканчиваются следующим образом:
itinerary/
directory/
Я много занимался поиском решения, но в этом случае я не уверен, что даже знаю терминологию, которую можно использовать для моего поиска, так как большая часть того, что я прочитал в обратных ссылках, похоже, имеет дело с одиночными совпадениями.