URL переписывающий вопрос

Это мое правило, настроенное в web.config:

   <rule name="RedirectPopups" stopProcessing="true">
              <match url="^webforms/visitor/popup/*" />
              <conditions>
                <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
                <add input="{QUERY_STRING}" pattern="^([^=&amp;]+)=([^=&amp;]+)$" />
              </conditions>
              <action type="Redirect" url="jwelery/INEEDTHEPAGEVARIABLEHERE/{C:1}/{C:2}" appendQueryString="false" redirectType="Permanent" />
            </rule>

В основном у меня есть всплывающие окна в webforms\visitor\popup. Я хочу написать правило, когда любая страница является запросом в этом всплывающем каталоге. Он перенаправляется на какой-то пользовательский URL.

Например,

Если пользователь запрашивает webforms/visitor/popup/HelloWorld.aspx?a=1

Он должен быть перенаправлен на jwelery/HelloWorld/a/1

Мне просто нужно решение для того, что я должен написать в "INEEDTHEPAGEVARIABLEHERE" в действии перенаправления. Есть ли какая-то специальная переменная, которую я могу использовать? Я использую IIS7

Благодарю.

2 ответа

Решение

Почему ты не используешь

<match url="^webforms/visitor/popup/([a-zA-Z0-9]+).aspx\?([a-zA-Z0-9]+)=([a-zA-Z0-9]+)$" />
<action type="Rewrite" url="jwelery/{R:1}/{R:2}/{R:3}" />

?

Чтобы ответить на ваш оригинальный вопрос, вы можете использовать UrlRouting.
( http://weblogs.asp.net/scottgu/archive/2009/10/13/url-routing-with-asp-net-4-web-forms-vs-2010-and-net-4-0-series.aspx)

Другие вопросы по тегам