2010-04-29 8 views
1

Я немного искал сайт, но я не нашел ответов на вопрос, как это сделать, как я хочу.URLRewriter.net с несколькими querystring, разделенными/

То, что я хочу, это URL, как это:

www.example.com/Projects/"querystring1 - только текст "/" querystring2 - только 4 цифры "/

показать страницу с этим URL:

www.example.com/Projects.aspx?Region=querystring1 & Zip = querystring2

То, что я пытался следующий:

<rewrite url="~/Leje-og-udlejning-arbejdskraft/(.+)/(.+)" to="~/Workers.aspx?Region=$1&amp;zip=$2"/> 

Но он просто берет оба из них как один querysting и помещает их в Querystring Region.

ответ

4

Мне нужно будет убедиться в том, что все остальные правила перезаписи будут выполнены, но если у вас есть несколько перезаписей (например, для обработки ситуаций, когда пользователи указывают только одну из двух строк запроса), пренебрегая добавлением processing="stop" в конце, заставляют одно правило переопределять другое.

Например, я использую следующие настройки в моем файле web.config:

<rewriter> 
    <rewrite url="~/(.+)/(.+)" to="~/Default.aspx?ref=$1&amp;page=$2" processing="stop"/> 
    <rewrite url="~/(.+)" to="~/Default.aspx?ref=$1" processing="stop"/> 
</rewriter> 

Это первый проверить, если 2 переменных запроса присутствуют. Если они есть, они переписывают их соответствующим образом и прекращает обработку других правил. Это biggie. Без processing="stop" в конце, я в конечном итоге передаю как строку запроса ref. Это может быть конфликт, в котором вы работаете.

+0

Спасибо. Думаю, так и будет. Что делать, если я хочу третий и четвертый строки? бы это просто: <переписать URL = "~ /(.+)/(.+)/(.+)/(.+)" к = "~/Default.aspx исх = $ 1 &? page = $ 2 & test = $ 3 & ref4 = $ 4 "processing =" stop "/>

+1

Да, именно так я это делаю. Таким образом, вы не потеряете дополнительные переменные запроса, если они есть, но если они не будут автоматически переходить к следующему условию в вашем списке. – EAMann