отладка перезаписи URL в umbraco

#asp.net #umbraco

#asp.net #umbraco

Вопрос:

У меня есть правило перезаписи URL, указанное для моего сайта umbraco, например:

 <add name="circuitdetail" 
    virtualUrl="^~/circuits/(.*).aspx" 
    rewriteUrlParameter="ExcludeFromClientQueryString" 
    destinationUrl="~/circuits/detail.aspx?circuit=$1" 
    ignoreCase="true" />
  

Я бы хотел, чтобы /circuits /Альберт-парк был сопоставлен с /circuits /detail?circuit = альберт-парк.
Когда я ввожу этот второй URL, я правильно получаю нужную страницу, но когда я ввожу первый, я получаю свою страницу 404.

В Umbraco у меня есть страница с именем «Схемы», а под ней вложена страница с именем Detail. Как описано выше, ввод недружественного URL работает, но, похоже, перезапись URL не работает.

Что я делаю не так?

Ответ №1:

Похоже, что ваше регулярное выражение соответствует destinationURL так же, как и VirtualURL.

Поэтому, когда он повторно записывает в ~/circuits/detail.aspx?circuit=$1

Это также сопоставляется с ^~/circuits/(.*).aspx RegEx.

Добавление $ в конец вашего регулярного выражения должно это исправить. $ указывает регулярному выражению совпадать до конца строки.

т.е.

 ^~/circuits/(.*).aspx$
  

Дополнительная информация:http://www.regular-expressions.info/anchors.html