2009-10-14 45 views
2

我強調試圖爲我的網站創建一個url rewriter.net規則。URL Rewriter.NET和多個querystrings

我有一個鏈接

http://localhost/Pages/CategoryList.aspx?ID=2&Page=1 

而且我想這個

http://localhost/Category/2.aspx?Page=1 

更換我試過如下:

<rewrite url="~/Category/(.+).aspx?Page=(.+)" to="~/Pages/CategoryList.aspx?ID=$1&amp;Page=$2" /> 

但沒有奏效。

任何人都可以幫助我嗎?

+0

爲什麼要保持在.aspx?你可以很容易地創建一個更漂亮(更多語義)的網址,並重寫... – Skilldrick 2009-10-14 21:18:20

回答

0

這將工作

<rewrite url="~/Category/(.+).aspx(\?(.*))?" to="~/Pages/CategoryList.aspx?ID=$1&amp;$3" /> 
0

你加:

<httpModules> 
     <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/> 
</httpModules> 

web.config文件?

+0

是的。我有另一個規則在同一個項目中工作。 – pedrofernandes 2009-10-14 21:56:42

0

你忘了逃跑一些特殊符號,和不知道的 '〜'(和 '' '?'):

<rewrite url=".*/Category/(.+)\.aspx\?Page=(.+)" to="/Pages/CategoryList.aspx?ID=$1&amp;Page=$2" /> 
0

試試這個:

<rewrite url="~/Category/(.+)\.aspx\?Page=(.+)" 
     to ="~/Pages/CategoryList.aspx?ID=$1&amp;Page=$2" /> 
2

試試這個:

<rewrite url="~/Category/([0-9]+)\.aspx\?Page=([0-9]+)" to="~/Pages/CategoryList.aspx?ID=$1&amp;Page=$2" /> 

或者更好的(短):

<rewrite url="~/Category/(d+)\.aspx\?Page=(d+)" to="~/Pages/CategoryList.aspx?ID=$1&amp;Page=$2" /> 

我在想「。」你使用的太過於貪婪,而且太多了。