Jetty配置将所有404重定向到主页

时间:2011-03-25 02:35:30

标签: java jetty

Google已将一些旧网址缓存到网站上不再存在的网页上。我想将任何404页面重定向到主页。

我有一个jetty安装,其中一个ROOT.war文件安装在jetty / webapps中。 ROOT.war文件包含一个WEB-INF / web.xml文件,其中包含以下内容:

<error-page>
    <error-code>404</error-code>
    <location>/</location>
</error-page>

但是,这只是重定向顶级文件,在子目录中没有任何内容。因此,以下URL将重定向到主页:

http://mysite.com/pageDoesntExist.html

但是这个没有,只是给出了404错误:

http://mysite.com/directoryDoesntExist/pageDoesntExist.html

有没有办法配置所有404进入主页?我可以在jetty / contexts目录中以某种方式执行此操作吗?

2 个答案:

答案 0 :(得分:0)

您想使用org.mortbay.jetty.handler.MovedContextHandler: http://jetty.mortbay.org/xref/org/mortbay/jetty/handler/MovedContextHandler.html

Bots将使用Header 301 Redirect更新缓存google

答案 1 :(得分:0)

一个想法是:

<error-page>
    <error-code>404</error-code>
    <location>/error404.html</location>
</error-page>

(如Redirecting a 404 error page to a custom page of my Spring MVC webapp in Tomcat中所述) 然后在error404.html内进行重定向:

<html>
<head><title>Redirecting...</title></head>
<body>
    <script>
    document.location.href="/";
    </script>
</body>
</html>

(如how to redirect to home page中所述)