2012-11-06 45 views
0

我有以下URL重寫規則:URL重寫結合查詢字符串值

<ConfigRule> 
    <LookFor>/([^/]*)/([^/]*)/([^/]*)/</LookFor> 
    <Exclude>/Admin/(.*)</Exclude> 
    <SendTo>~/CategoryDetails.aspx?url=$3&amp;fullurl=/$1/$2/$3/&amp;page=1</SendTo> 
    <IgnoreQueryStringInMatch>true</IgnoreQueryStringInMatch> 
</ConfigRule> 

凡分別爲$ 1,$ 2和$ 3個相等的父組,父類別和類別。我想要做的是匹配一個網址,例如:/cars/car-parts/wheels/

正則表達式匹配url模式,但我有一個奇怪的問題,如果你有一個同名的類,例如兩個帶有名稱/ URL「輪子」,無論它是否在不同的父母/組下,您將被重定向到兩個中的一個,例如,

/bicycles/bicycle-parts/wheels/ 

/cars/car-parts/wheels/ 

都將重定向到同一頁面。

我認爲罪魁禍首是這樣的:

<SendTo>~/CategoryDetails.aspx?url=$3&amp;fullurl=/$1/$2/$3/&amp;page=1</SendTo> 

?url=$3只匹配URL(輪)的最後一部分,所以我猜我問的是有沒有辦法,包括組+父類+類的url查詢字符串,以便它匹配所有三個段而不僅僅是結束?

回答

1

我想你想要的是使用fullurl參數,而不是網址在ASP腳本生成頁面(CategoryDe​​tails.aspx)。包含所有三個層次結構級別的完整路徑已經傳遞到重寫的url中,所以這裏沒有任何事情可以通過url重寫來完成。