2008-08-05 94 views

回答

23

嘗試管理融合網址重寫和反向代理:

http://urlrewriter.codeplex.com

改寫這個規則會be:

# clean up old rules and forward to new URL 
RewriteRule ^/?user=(.*) /users/$1 [NC,R=301] 

# rewrite the rule internally 
RewriteRule ^/users/(.*) /?user=$1 [NC,L] 
+0

一個建議:我會調整第一個RewriteRule看起來像^ /?用戶=(\ w *)以便http://www.website.com/?users=smith&day=monday不生成http://www.website.com/users/smith&day=monday – Dscoduc 2009-02-06 17:13:32

+0

這是一個好主意,並完全支持這個.NET版本。最初的意圖是讓我的示例與不支持該語法的mod_rewrite兼容。 – 2009-05-26 16:14:42

+0

這太棒了。 – 2009-08-16 07:52:53

20

Scott Guthrie介紹瞭如何在.Net中原生地完成這項工作here

我已經使用了httpmodule方法,它工作得很好。這基本上是ManagedFusion爲您做的。

4

我已經使用了從URL重寫www.urlrewriting.net取得了巨大成功的HTTP模塊(雖然我相信早得多,簡單的版本)

如果你有很少的實際重寫規則,那麼內置於.NET 2.0的URL映射可能是一個更容易的選擇,網上有幾個這樣的寫法,4guysfromrolla似乎是相當詳盡的,但你可以看到它們不支持正則表達式映射,因爲它們在動態環境中顯得相當無用(假設「史密斯「在你的例子中是不是一個特例,那麼這些將是沒有用的)

5

微軟現在發運一個官方URL重寫Mod對於IIS:http://www.iis.net/download/urlrewrite

它支持大多數類型的重寫,包括設置服務器變量和通配符。

它也將在所有開箱即用的Azure Web實例上存在。