應用場景:網站維護和未開發完成時,一般需要把所有請求都跳轉的一個相關說明的頁面,這樣用戶不至于困惑這個網站是不存在還是怎么了。
Solution1:使用一個名稱為 app_offline.htm(名字需要一樣,不區分大小寫)文件,把這個文件放到你網站的根目錄下面,至于這個頁面的內容,你可以自己定義。現在所有的請求都會重定向到app_offline.htm頁面。當你的網站完成之后,把app_offline.htm 文件刪除即可。
Solution2:在asp.net 中也可以使用HttPRedirect 來完成相關功能。
a.首先你需要創建一個頁面來作為最終的跳轉頁面,把這個網站的所有請求都重定向到這個頁面(這里起個名字叫:Offline.html)。 你可以把你網站相關信息都寫在這里,是正在維護,還是沒開發完。
b.在IIS中創建一個網站(這里以IIS7為例說明),切換到Features View 功能界面,找到Http Redirect選項并雙擊。勾選“Redirect request to this destination:”選項,并輸入你的Offline.html 所對應的地址(例如:http://localhost:8057/Offline.html). 在redirect behavior 框中還有兩個復選框:
“Redirect all requests to exact destination (instead of relative to destination)”:不是必選項,用來設置 目標地址是絕對路徑還是相對路徑,默認值是 false(不勾選)。
“Only redirect request to content in this directory (not subdirectories)”:不是必選項,作用:根據重定向路徑和請求路徑來決定最終的目標路徑,默認值是 false(不勾選)。
以上選項所對應的web.config 的配置文件是:
<system.webServer> <httpRedirect enabled="true" destination="http://localhost:8057/Offline.html" exactDestination="false" childOnly="false" /> </system.webServer>
c.設置Status Code:默認返回302,表示由于出現問題臨時重定向到一個新的地址。還有301(表示永久重定向),307.
d.設置好之后,點擊右上角的Apply。在IIS中重啟網站,現在所有請求都會重定向到目標地址。

可能遇到的問題:如果所有設置都設好之后,可能會碰到“此網頁無法顯示”(IE) 或者“此網頁包含重定向循環”(Chrome) 的問題?
Solution:碰到這個問題,并不是你的設置錯了,而是犯了一個silly mistake。網站重定向,不能重定向到自己,只能重定向到其它網站,不然會出現重定向循環的錯誤。(滿滿的都是淚。。。) 只需要單獨建一個網站作為目標地址,然后把重定向的地址修改為目標地址即可。
新聞熱點
疑難解答