#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