2010-10-21 348 views
1

我們使用URLRewriter(http://urlrewriter.net),並想重寫這樣的疑問:ASP.Net URL重寫

domain.com/find/red-boots

到這樣的: domain.com/search.aspx?k=red+boots

的示例代碼進入web.config中是這樣的(我有點不熟悉這個語法)

<if url="/tags/(.+)" rewrite="/tagcloud.aspx?tag=$1" />

如何在web.config中對此行進行編碼以重寫我們需要的方式?另外,如果您對如何理解重寫器語法有什麼好的建議,那也會很棒。

+0

我覺得你已經錯過了鏈接... – 2010-10-21 00:31:11

+0

你是否需要支持紅紅藍紅的靴子,使它變得非常棘手,正則表達式 – 2010-10-21 00:33:29

+0

是的,它可以是任意數量的單詞用連字符分隔......我也使上面的代碼可讀。 – alchemical 2010-10-21 00:35:10

回答

1

您所問的「重寫器語法」稱爲正則表達式。有很多很棒的工具,只要搜索谷歌的「正則表達式幫助」。

但是,如果您希望使用一個具有更多歷史背後的語法,那麼您可以獲得更詳細的幫助。請查看Managed Fusion Url Rewriter,它使用Apache mod_rewrite語法,這個標準已經比我能發現的更多年了。這裏是你將如何完成你的問題的mod_rewrite語法:

RewriteRule ^/find/(.*)  /search.aspx?k=$1  [NC,L] 

RewriteRule後的第一個部分就是試圖獲得對瀏覽器請求的URL匹配的輸入。第二部分是轉變,這是針對匹配規則而發生的。轉換將其轉化爲您的應用程序可以理解的內容。括號中的最後一部分是控制標記,在這種情況下,我告訴RewriteRule不要擔心NC指示的字符的情況,並且如果匹配,應該將其視爲由L指示的最後處理的規則

+0

偉大的建議!我會試試這個。 – alchemical 2010-10-21 18:32:28

+0

我下載了它,閱讀自述文件,引用它,編輯了web.config,但無法讓它做任何事情......任何建議?也找不到這方面的任何文件... – alchemical 2010-10-22 08:59:35

+0

這不是真的這個正確的支持論壇。請在網站上發佈問題,我將能夠爲您提供更多幫助。 – 2010-10-22 11:40:15