Получение последней части URL в переменную с помощью Url Rewriter - PullRequest
0 голосов
/ 03 декабря 2010

Я использую Url Rewriter для создания удобных для пользователя URL-адресов в своем веб-приложении, и для меня настроено следующее правило

<rewrite url="/(?!Default.aspx).+" to="/letterchain.aspx?ppc=$1"/>

Как заменить 1 доллар, чтобы он был последней частью URL?

Чтобы следующее

www.mywebapp.com / hello

преобразовалось в

/ letterchain.aspx? ppc = привет

Я прочитал документы, но ничего не могу найти.

Ответы [ 2 ]

1 голос
/ 04 декабря 2010

$ 1 в части to группы относится к первой определенной группе захвата (например, части в скобках).

Часть, которую вы на самом деле хотите внедрить в $ 1, - это +, который не входит в группу захвата.

Я не уверен, но думаю, что из-за (?!) Запроса на совпадение, если суффикс отсутствует, он не считается пронумерованной группой захвата $ 1, поэтому должно работать:

<rewrite url="/(?!Default.aspx)(.+)" to="/letterchain.aspx?ppc=$1"/>

Если это не так, просто попробуйте вставить вторую строку захвата вместо строки:

<rewrite url="/(?!Default.aspx)(.+)" to="/letterchain.aspx?ppc=$2"/>
0 голосов
/ 06 декабря 2010

Обратите внимание, что если вы разрабатываете для IIS 7+ http://www.iis.net/download/urlrewrite/ - это модуль от Microsoft, который выполняет более быстрые перезаписи с меньшим объемом.

Кстати, у вашего регулярного выражения есть небольшая проблема, вам нужноэкранировать точку, то есть "/(?!Default.aspx)(.+)"

...