网站更新数据 IIS 如何让网站所有页面指向同一个提示页面?

woiyyyy 2010-06-26 01:49:21
如题,请教 大家 网站更新的时候 站点要停掉, 之前用户保存的页面地址 就失效了.
如果像错误页面那样 指向 同一个页面 会对搜索引擎有些影响..
是否有其他办法 将所有连接地址 都同时指向 一个页面?
...全文
425 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
huiyuan659 2010-06-27
  • 打赏
  • 举报
回复
<forms loginUrl="a.aspx">
<deny user="*">
lanyur 2010-06-26
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 newdigitime 的回复:]
引用 14 楼 lanyur 的回复:
这方法不错,简单点直接使用global.asax里面判断一下全局变量是off还是on就可以了。

不过关于512字节的请求为啥会出错还是没太明白。意思是,如果请求的响应字节小于512,IE就显示错误吗


如果该网站的404错误页面超出512字节,那么Internet Explorer将显示此错误页面;如果未超出范围,那么就使用IE自身的错误页面……
[/Quote]

原来是指404错误的响应大小没超过512呀,我还以为所有的状态只要没超过512就会出错呢,以前在Ajax请求中碰到过一些奇怪的问题,浏览器版本好象也是IE6以上。
wuyq11 2010-06-26
  • 打赏
  • 举报
回复
在网站根目录添加appoffline.htm这个页面
newdigitime 2010-06-26
  • 打赏
  • 举报
回复
你可以写在global.asax中,也可以放在专门的httpmodule中
newdigitime 2010-06-26
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 lanyur 的回复:]
这方法不错,简单点直接使用global.asax里面判断一下全局变量是off还是on就可以了。

不过关于512字节的请求为啥会出错还是没太明白。意思是,如果请求的响应字节小于512,IE就显示错误吗
[/Quote]

如果该网站的404错误页面超出512字节,那么Internet Explorer将显示此错误页面;如果未超出范围,那么就使用IE自身的错误页面(因为IE中一般设置有"显示友好的HTTP错误").上面说了,新版本的浏览器基本上不存在这种现象了

global.asax与httpmodule有很大的交叉性,都是响应一些全局事件.
你可以写在global.asax中,也要放在专门的httpmodule中
-深白色- 2010-06-26
  • 打赏
  • 举报
回复
楼主用url重写来实现吧,这样定制的空间比较大。搜索引擎也完全看不出来
lanyur 2010-06-26
  • 打赏
  • 举报
回复
这方法不错,简单点直接使用global.asax里面判断一下全局变量是off还是on就可以了。

不过关于512字节的请求为啥会出错还是没太明白。意思是,如果请求的响应字节小于512,IE就显示错误吗
newdigitime 2010-06-26
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 lanyur 的回复:]
512字节,IE出错是啥原理呀,那Ajax有时候返回的也没512呀
[/Quote]

因为使用app_offline.htm时.服务器会向用户返回一个http404错误.
但正常情况下,404错误需要响应的数据有512字节以上(注:较新版本的浏览器已不存在这个问题)
但不管怎么说,浏览器或者搜索引擎将得到"http404错误"

个人的经验是:
在准备关闭网站时,在后台操作,将application或一个全局静态变量/属性赋值.
如 global.site="off"

然后写一个httpmodule模块.
对每一个浏览请求,这个模块将检查global.site的值,如果是on,就忽略不作处理,如果是off
则rewritepath到一个指定的页面,实现你的所有请求都指向同一页面的目的,而且这是正常的响应,即httpstate=200的正常响应.

lanyur 2010-06-26
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 newdigitime 的回复:]
非http200状态的响应,搜索引擎还是会把它当成一个网页错误来处理,
这仍然会导致楼主担心的"对搜索引擎不好"

另外,在这个文件小于512字节时,在IE上会直接显示成错误
[/Quote]

如果把app_offline.htm设置为默认文档,也只能解决后面来访问的用户有个好的体验,正在使用中的用户还是会有问题的吧。

512字节,IE出错是啥原理呀,那Ajax有时候返回的也没512呀
newdigitime 2010-06-26
  • 打赏
  • 举报
回复
非http200状态的响应,搜索引擎还是会把它当成一个网页错误来处理,
这仍然会导致楼主担心的"对搜索引擎不好"

另外,在这个文件小于512字节时,在IE上会直接显示成错误
lanyur 2010-06-26
  • 打赏
  • 举报
回复
是的,IIS7.5,80端口,站点下就一个app_offline.htm文件。
ningxiaowei1988 2010-06-26
  • 打赏
  • 举报
回复
是Web文件下的根目录没解释清楚。囧
ningxiaowei1988 2010-06-26
  • 打赏
  • 举报
回复
你放在根目录了吗?你使用asp.net开发的吗?
lanyur 2010-06-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ningxiaowei1988 的回复:]
引用 4 楼 newdigitime 的回复:
引用 3 楼 ningxiaowei1988 的回复:
用得找这么麻烦吗?你建个app_offline.htm页面,内容写上你们网站在维护就行了,这样不管他们访问那个网站都是app_offline.htm页面。

这个是非http200状态的响应.还是不能满足楼主的要求.

app_offline.htm 是 ASP.NET 中一个有用的……
[/Quote]


为啥我在本机建个不行哩,解释解释一下
ningxiaowei1988 2010-06-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 newdigitime 的回复:]
引用 3 楼 ningxiaowei1988 的回复:
用得找这么麻烦吗?你建个app_offline.htm页面,内容写上你们网站在维护就行了,这样不管他们访问那个网站都是app_offline.htm页面。

这个是非http200状态的响应.还是不能满足楼主的要求.
[/Quote]
app_offline.htm 是 ASP.NET 中一个有用的文件,当我们对服务器进行维护,需要暂时关闭网站时,可以做一个网页,提示服务器正在维护,然后将该文件命名为 app_offline.htm,然后放到网站根目录下,当访问这个 ASP.NET 网站时,就会返回 app_offline.htm 的内容。

lanyur 2010-06-26
  • 打赏
  • 举报
回复
呵呵,app_offline.htm就可以吗?我怎么试了不行呀。
newdigitime 2010-06-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ningxiaowei1988 的回复:]
用得找这么麻烦吗?你建个app_offline.htm页面,内容写上你们网站在维护就行了,这样不管他们访问那个网站都是app_offline.htm页面。
[/Quote]
这个是非http200状态的响应.还是不能满足楼主的要求.
ningxiaowei1988 2010-06-26
  • 打赏
  • 举报
回复
用得找这么麻烦吗?你建个app_offline.htm页面,内容写上你们网站在维护就行了,这样不管他们访问那个网站都是app_offline.htm页面。
lanyur 2010-06-26
  • 打赏
  • 举报
回复
啥叫“之前用户保存的页面地址”呀?
royalli 2010-06-26
  • 打赏
  • 举报
回复
这个还没遇到过,是不是可以写个公共类或者是借口,让页面后台代码继承或实现,判断一下,如果页面地址失效了,就跳转到你指定的页面!可以试一下!

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧