Tomcat 404页面跳转
2013-10-26 19:40
369 查看
某系统改版后,旧版的系统的访问链接已经无效,但有一些路径已经被搜索引擎收录,所以当用旧的链接访问系统时会出现404页面。
用户在用旧链接访问时如果出现404页面则将页面跳转到首页,实现这个需求有多种方式,当时考虑了两种方案:
一、在nginx上配置404页面跳转。由于修改nginx配置需要联系运维帮忙,所以考虑在tomcat里进行实现。(tomcat我们有权限操作)
nginx配置404跳转参考:/article/5876925.html
二、在tomcat里实现,实现方式如下:
1)修改对应项目的WEB-INF/web.xml文件,在web.xml中加入如下代码
2)在404Redirect.html中写入如下代码
开始测试,chrome和firefox均符合期望,IE10上测试依然还是404页面。后来发现IE中有一项设置可以阻止refresh跳转。
所以将404Redirect.html修改为通过js跳转,如下
经测试,IE10上依然不行,还是404页面。但通过调试,发现响应正文部分确实是我的代码,却没有显示。
后来通过在google发现IE浏览器在返回状态为404的时候,如果页面内容长度小于512bytes,它会用浏览器自己的错误页面代替我设置的404Redirect.html。
好吧,用一个最愚蠢的办法骗过最聪明的IE吧,修改后的404Redirect.html代码如下
再次进行测试,chrome、firfox、IE均OK。
用户在用旧链接访问时如果出现404页面则将页面跳转到首页,实现这个需求有多种方式,当时考虑了两种方案:
一、在nginx上配置404页面跳转。由于修改nginx配置需要联系运维帮忙,所以考虑在tomcat里进行实现。(tomcat我们有权限操作)
nginx配置404跳转参考:/article/5876925.html
二、在tomcat里实现,实现方式如下:
1)修改对应项目的WEB-INF/web.xml文件,在web.xml中加入如下代码
<error-page> <error-code>404</error-code> <location>404Redirect.html</location> </error-page>
2)在404Redirect.html中写入如下代码
<html> <head> <meta http-equiv="refresh" content="0; url=/"/> </head> </html>
开始测试,chrome和firefox均符合期望,IE10上测试依然还是404页面。后来发现IE中有一项设置可以阻止refresh跳转。
所以将404Redirect.html修改为通过js跳转,如下
<html> <head> <script type="text/javascript"> window.location.href = "/"; </script> </head> </html>
经测试,IE10上依然不行,还是404页面。但通过调试,发现响应正文部分确实是我的代码,却没有显示。
后来通过在google发现IE浏览器在返回状态为404的时候,如果页面内容长度小于512bytes,它会用浏览器自己的错误页面代替我设置的404Redirect.html。
好吧,用一个最愚蠢的办法骗过最聪明的IE吧,修改后的404Redirect.html代码如下
<html> <head> <script type="text/javascript"> window.location.href = "/"; </script> </head> <body style="display:none"> body中的内容对用户没有任何实际意义,它存在的唯一目的就是让响应内容长度大于512bytes, 以此骗过“聪明”的IE。 IE浏览器在返回状态为404的时候,如果页面内容长度小于512bytes,它会用浏览器自己的默认错误页面代替响应页面的内容。 </body> </html>
再次进行测试,chrome、firfox、IE均OK。
相关文章推荐
- Action级,package级,application级的国际化(tomcat容器的web.xml,project的web.xml,默认action跳转)
- 2种方式解决vue路由跳转未匹配相应路由避免出现空白页面或者指定404页面
- Tomcat的web服务自动跳转到https的设定
- Tomcat启动不了时Apache自动跳转指定页面
- 配置Tomcat使用https协议(配置SSL协议) (http自动跳转到https)
- eclipse 中的 tomcat 运行时会跳转到方法 processWorkerExit()
- tomcat的404报错页面指定即跳转方式的实现
- Tomcat配置https及访问http自动跳转至https
- nginx+tomcat把带WWW域名自动跳转到不带www域名方法
- Tomcat配置https及访问http自动跳转至https
- 阿里云服务器nginx多tomcat跳转配置
- Tomcat配置https及访问http自动跳转至https
- 避免tomcat运行过程中跳转到debug模式下
- Nginx+Tomcat+SSL配置(包括https跳转及腾讯免费SSL申请流程)
- myeclipse 启动tomcat时跳转到debug界面解决方法
- 1,Tomcat在提交表单时后台取不到值的问题,2,springMVC跳转页面地址错误问题
- tomcat设置http自动跳转为https访问(转)
- 【Tomcat】配置https及访问http自动跳转至https
- servlet 过滤器实现 请求转发(跳转);跨域转发请求;tomcat 环境下。
- eclipse中tomcat在debug模式下有时会自动跳转到processWorkerExit(w, completedAbruptly);中的问题