URL重寫的一種方案

2022-03-02 06:38:03 字數 1219 閱讀 8706

url重寫可以讓**看上去更有條理、還可以讓**改版後的舊連線能夠繼續使用。

可以參考可用性專家jakob neilsen對url的建議

msdn相關參考:

中文:英文:

考慮到簡潔,為什麼每個url最後都要是aspx呢?因為如果不是aspx,就無法對映到aspnet中進行處理。想要實現將/2004/這樣的目錄也對映到aspnet中處理,就需要iis中的過濾器了。

我採用了這個過濾器。我試驗了好幾種,在iis5.0下幾乎都好用,到了iis6.0下,就有問題了。如果/2004/這個目錄存在,則好用,不存在則直接返回404錯誤。只有這個過濾器能在iis6.0判斷目錄存在之前進行過濾。

我用的配置檔案內容為:

rewriteengine on

rewriterule ([^\n]*)/ $1/default.aspx

但這樣一來,問題就出來了,這相當於遮蔽了iis中預設頁的設定,預設頁只能是default.aspx了。

進一步,如果使用/2004這個名字訪問呢?因為過濾器只重寫最後為/的url,其它的無法進行判斷了。我的解決方法是寫乙個404.aspx

private

sub page_load()

subpage_load(

byval

sender 

asobject

, byval

e as

system.eventargs) 

handles

mybase

.load

dimstemp 

asstring

=server.urldecode(request.querystring.tostring())

if(stemp.chars(stemp.length -1

) ="/

"c) 

then

server.transfer("/

")else

stemp 

=stemp.substring(stemp.indexof(";

") +1

)response.redirect(stemp &"/")

endif

end sub

然後在iis屬性-〉自定義錯誤資訊裡將404的預設值改為訊息型別:url,url改為:/404.aspx

雖然這樣效率比較低,要重定向一次,但也比因為使用者少打了乙個/而無法訪問要強。

歡迎補充、批評、指正。

URL的一種解釋

url是uniform resource location的縮寫,譯為 統一資源定位符 通俗地說,url是internet上用來描述資訊資源的字串,主要用在各種www客戶程式和伺服器程式上,特別是著名的mosaic。採用url可以用一種統一的格式來描述各種資訊資源,包括檔案 伺服器的位址和目錄等。u...

一種DTO的規劃方案

現在以網頁發布的軟體非常普遍,叫bs模式。前後端分離也是大趨勢,或者說逐漸普及開來,深受前後端程式設計師的喜愛,我還是習慣以程式設計師來泛稱所有軟體製作者。後端需要把資料傳送給前端,往往是通過dto的序列化來實現的,而不是直接產生json或xml格式的資料。這裡不說為什麼要用dto,只說 乙個問題,...

Nginx一種限流方案

介面為了防止高併發拖累系統 通過nginx來限流 如最多同時允許100個使用者進來 超過100個則預設返回未中獎 lua init r.lua local shared data ngx.shared.dict shared data set draw 0 draw r.lua local requ...