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="^([^=&]+)=([^=&]+)$" />
</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)