постоянный редирект 301 в Tomcat 5.5 - PullRequest
3 голосов
/ 21 сентября 2010

Можно ли выполнить перенаправление 301 с Tomcat 5.5, работающим автономно, а не за IIS / Apache?

Ответы [ 2 ]

3 голосов
/ 22 сентября 2010

Нет способа установить это так легко, как вы можете с помощью Apache. Самым близким было бы создать сервлет или jsp для обработки перенаправления, а затем сопоставить его с URL-адресом, с которого вы хотите перенаправить. В сервлете или jsp это будет выглядеть примерно так:

response.setStatus(301);
response.setHeader("Location", "http://www.example.com/redirect-to-here.html" );
0 голосов
/ 23 февраля 2018

Чтобы перенаправить всю папку в новое место, вам нужны JSP и конфигурация для вызова этого jsp после 404.

В index.jsp вам нужно изменить свое поведение перенаправления. Приведенный ниже код перенаправляет из папки OldApp в папку NewApp на том же сервере.

index.jsp:

<!DOCTYPE html>
<html lang="en-US">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>301 Moved</title>
</head>
<%@ page import="org.apache.catalina.util.RequestUtil" %>
<%
    // get the requested URI
    //String requestedLocation = request.getRequestURI();
    // original request
    String requestedLocation = RequestUtil.filter((String) request.getAttribute("javax.servlet.error.request_uri"));
    // rewrite to new location
    String newLocation = requestedLocation.replaceAll("^/OldApp", "/NewApp");
    // add query string
    String query = request.getQueryString();
    if (!query.isEmpty()) {
        newLocation = newLocation + '?' + query;
    }

    // 301 - permanent redirect
    response.setStatus(response.SC_MOVED_PERMANENTLY);
    response.setHeader("Location", newLocation);
%>
<body>
    &rarr; <a href="<%=newLocation%>"><%=newLocation%></a>
</body>
</html>

WEB-INF / web.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">

  <error-page>
    <error-code>404</error-code>
    <location>/index.jsp</location>
  </error-page>
</web-app> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...