2010-12-03 146 views
0

我使用網址重寫我的web應用程序來創建用戶友好的URL,並具有以下規則設置URL的最後一部分進入變量使用URL重寫

<rewrite url="/(?!Default.aspx).+" to="/letterchain.aspx?ppc=$1"/> 

如何替換$ 1,以便它是URL的最後一部分?

所以,下面的

www.mywebapp.com/hello

會轉化爲

/letterchain.aspx?ppc=hello

我已閱讀文檔,但找不到任何內容。

回答

1

該組的to部分中的$ 1是指定義的第一個捕獲組(例如括號中的部分)。

您實際想要注入$ 1的部分是。+,它不在捕獲組中。

我不知道,但我認爲,因爲「比賽如果後綴不存在」查詢這個心不是算作編號的捕獲組$ 1,因此這應該工作(?!):

<rewrite url="/(?!Default.aspx)(.+)" to="/letterchain.aspx?ppc=$1"/> 

如果它並不那麼就嘗試第二個捕獲組插入到你的字符串代替:

<rewrite url="/(?!Default.aspx)(.+)" to="/letterchain.aspx?ppc=$2"/> 
+0

剛試過都在這兩種情況下PPC =」 「 – 2010-12-04 09:12:22

0

請注意,如果您正在爲IIS 7+ http://www.iis.net/download/urlrewrite/發展是微軟與低排放執行得更快重寫模塊。

順便說一句,你的正則表達式有一個小問題,你需要躲避點字符,那就是「/(?!Default.aspx)(.+)」