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

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

0 голосов
/ 18 августа 2011

Это мое правило, настроенное в 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

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

Спасибо.

Ответы [ 2 ]

2 голосов
/ 18 августа 2011

Почему бы вам не использовать

<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}" />

0 голосов
/ 19 августа 2011

Чтобы ответить на исходный вопрос, вы можете использовать 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)

...