Конфигурация Jetty для перенаправления всех 404-х на домашнюю страницу

Google кэшировал некоторые старые URL-адреса на страницы, которых больше нет на сайте. Я хочу перенаправить все 404 страницы на домашнюю страницу.

У меня есть установка на причале с файлом 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 для перехода на домашнюю страницу? Могу ли я как-нибудь сделать это в каталоге пристани / контекста?


person Tauren    schedule 25.03.2011    source источник


Ответы (2)


Вы хотите использовать org.mortbay.jetty.handler.MovedContextHandler: http://jetty.mortbay.org/xref/org/mortbay/jetty/handler/MovedContextHandler.html

Боты будут использовать Header 301 Redirect для обновления кеша Google

person user676176    schedule 25.03.2011
comment
Спасибо. Но я не понимаю, как настроить его для обработки большого количества URL-адресов. Мне нужно создать новый файл контекста для каждого URL-адреса, что безумно. Должен быть способ получше. Можете ли вы привести пример, например, для перенаправления всех адресов в каталоге /directoryDoesntExist на домашнюю страницу? - person Tauren; 30.03.2011

Идея такая:

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

(как описано в Перенаправлении страницы с ошибкой 404 на настраиваемую страницу моего веб-приложения Spring MVC в Tomcat), а затем внутри error404.html выполните перенаправление :

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

(как описано в как перенаправить на домашнюю страницу)

person luca.vercelli    schedule 11.12.2020