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...