2010-04-29 20 views
1

我一直在尋找該網站的一些,但我沒有找到任何答覆如何以我想要的方式做到這一點。URLRewriter.net與多個查詢字符串分開/

我想要的是像這樣的URL:

www.example.com/Projects/"querystring1 - 文字只有 「/」 querystring2 - 4個位數只有「/

,以顯示與此頁面網址:

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

我一直在努力如下:

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

但它只是將它們作爲一個查詢並將它們放在Region-querystring中。

回答

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個查詢變量都存在。如果是,則會適當地重寫它們,並且停止處理其他規則。這是最重要的。沒有processing="stop"在最後,我最終通過兩個作爲ref查詢字符串。這可能是您正在運行的衝突。

+0

謝謝。我認爲這樣做。 如果我想要第三個和第四個查詢字符串,該怎麼辦? 那會僅僅是: <重寫URL = 「〜/(.+)/(.+)/(.+)/(.+)」 爲=「〜/ Default.aspx的REF = $ 1 &? page = $ 2 & test = $ 3 & ref4 = $ 4「processing =」stop「/> 2010-04-29 23:12:09

+1

是的,我正是這麼做的。這樣,如果它們在那裏,你不會失去額外的查詢變量,但如果它們不是,它會自動移動到列表中的下一個條件。 – EAMann 2010-05-01 18:01:23