如何在MVC中创建适当的503维护页面?

时间:2012-03-08 12:12:33

标签: model-view-controller seo

我想在MVC中为我的网站创建一个合适的维护页面。我希望它返回状态代码503,以便谷歌稍后再回来索引它。

到目前为止,我已经创建了一个ActionFilter来检查是否" MaintenanceMode"在web.config中为TRUE。如果是(并且我们还没有进入维护页面),它会进行简单的重定向到〜/ Maintenance /。我可以做一些事情,所以在所有这些期间返回503,或者这是不可能的?

只是要添加,我有一个您可以输入的秘密查询字符串参数,它会创建一个40分钟的cookie,绕过维护屏幕。只要提一下,如果你想知道为什么我开始使用这个屏幕......

更新:

我无法弄清楚如何使用我选择的页面返回503状态代码("右后卫!"页面)...但我知道如何返回503丑陋的版本:

filterContext.HttpContext.Response.StatusCode = 503;
filterContext.Result = new HttpStatusCodeResult(503);

我现在可能会这样做。如果有人能证实我在这里正确思考......

1 个答案:

答案 0 :(得分:0)

好吧,好像我自己想出来了。关于它,我的方向错了......

我试图在MVC框架的上下文中创建一个友好的503页面。相反,我只是创建了一个503.htm文件并将其放在根目录中。然后我配置IIS(在我的主机上)执行503错误重定向到503.htm。

当我的网站启动并处于维护模式时,我有一个动作过滤器可以执行此操作:

filterContext.Result = new HttpStatusCodeResult(503);

但在我去那里之前,我会检查是否输入了“秘密”查询字符串。如果是的话,我创建一个维护cookie 40分钟,我让用户绕过503,这样他就可以测试/玩这个网站了。

这是我在仍然能够测试网站的同时获得503维护页面的方式。