我試着寫在我的Web應用程序都In-和出站使用IISS URLRewriter像這樣的網址:IIS URL重寫出境PostBackUrls
www.domain.net/SomeSite.aspx
到www.domain.net/SomeSite
使用這個正則表達式入站:
^([A-Za-z0-9]+)([\?A-Za-z0-9=&]+)?$
,多出乎我的意料,這實際工作,也爲網址,如www.domain.net/SomeSite.aspx?abc=1
=>www.domain.net/SomeSite?abc=1
使用此重寫操作:{R:1}.aspx?{R:2}
但如今,對出站,我想有同樣的效果,因此用戶實際看到www.domain.net/SomeSite
即使我的web應用程序可能在內部引用〜/ SomeSite.aspx。
我使用下列正則表達式:
^([A-Za-z0-9]+).aspx([\?A-Za-z0-9=&#]+)?$
和重寫,像這樣的網址:/{R:1}{R:2}
一般來說這個作品,唉,如果不是確實爲例如Response.Redirect
在CodeBehind中執行,它也不適用於asp:Button
s的PostBackUrl
。
有沒有人有任何想法如何重寫這個出站規則,因此它實際上捕獲每個鏈接,無論我如何引用它?
感謝,
丹尼斯
編輯:
一些例子,因爲我想我是不是很清楚,因爲我以爲:
用戶在瀏覽器www.domain.com/Login
,入站規則捕獲並重定向到www.domain.com/Login.aspx
,但在地址欄中顯示/Login
,這種行爲很好。
但是,當我點擊即一個asp:按鈕與PostBackUrl Login.aspx
地址欄將顯示Login.aspx
而不是所需的Login
,如何得到這種行爲?
爲什麼不將PostBackUrl更改爲/ Login而不是Login.aspx?我*認爲*應該工作,至少這是我如何處理正常的錨點標記(保存出站不得不這樣做,然後!) – ianbailey 2012-03-13 16:53:45
是的,這會工作,但它會是令人驚訝的不方便,因爲我需要做我在IIS上調試,而不是在開發服務器上。 – 2012-03-13 22:25:56