应用场景:网站维护和未开发完成时,一般需要把所有请求都跳转的一个相关说明的页面,这样用户不至于困惑这个网站是不存在还是怎么了。
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。网站重定向,不能重定向到自己,只能重定向到其它网站,不然会出现重定向循环的错误。(满满的都是泪。。。) 只需要单独建一个网站作为目标地址,然后把重定向的地址修改为目标地址即可。