1/4 12'
404 - 找不到網頁,例如這裡、這裡、這裡和這裡。最基本的訊息內容是「找不到指定的頁面」或「Page Not Find」,預設的顯示訊息,依網頁伺服器不同而有所差別。
如果自己能夠管理及設定網站(例如管理 Apache 或 IIS),那就可以自己來玩玩 404,也就是設計一份自己的 404 頁面,當使用者輸入了錯誤的網址時,就會自動轉向 404 頁面,並顯示內容。
然而,如果僅僅是改改 404 的貢面,例如像這一大圫,那實在沒什麼創意,稍為加工一下,趣味大增。
例如,有在使用 Dropbox 的朋友們,應該都知道,要把檔案分享給其他人,Dropbox 會提供一個縮短網址,像是 http://db.tt/jad920ad,用來取代原本可能是一長串的網址。現在不少網站都提供了這樣的功能。而透過修正 404 頁面,我們也可以自己搞縮短網址服務。
舉個例子說,如果你試圖開啟 http://audi.tw/blahblah,那只會發生兩種情況,一種是禁止瀏覽 (Directory Listing Denied),例如 http://audi.tw/images,另一種則由 404 接手來顯示,而我把 404 改成 Google 搜尋,也就是當你試圖開啟的網址不存在,那就會跳到 Google 去搜尋,例如開啟 http://audi.tw/kit (kit 使用英文,因某些主機對中文的解析可能有問題)
而這之中的關鍵,在於取得主機變數 (Server Variables) 中的 QUERY_STRING,當發生 404 時,主機上的 QUERY_STRING 值 (以 http://audi.tw/kit 為例) 為:
QUERY_STRING=404;http://audi.tw:80/kit
透過字串解析,很容易取得 "kit" 這幾個字,接下來,你想加點什麼功能進去,就由你決定了。以我的 404 來說,IIS 管理,404.asp 寫成
...(略).... <body onload="document.f.submit();"> <% p=Request.ServerVariables("QUERY_STRING") q=MID(p,InStrRev(p,"/")+1,Len(p)-InStrRev(p,"/")) %>