Fazer um Redirect 301 utilizando Spring MVC

Postado em por Wolmir Cezer Garbin em SEO | 100 Visualizações
Última atualização em:

Para quem gosta de SEO e tem uma preocupação com a indexação das suas páginas no google e pretende mudar uma url, vou mostrar como fazer um redirect 301 corretamente no spring MVC

Neste Post vou mostrar como fazer um redirecionamento 301 corretamente utilizando Spring MVC e por que fazer isso de maneira correta é importante para seu web site.

O problema de mudar uma URL

Suponhamos que você tenha um web site ou blog e quer fazer uma simples mudança de url para manter uma melhor organização das suas páginas. A principio bastaria mudar o caminho e pronto! Mas no google e em outros mecanismos de busca podem levar um tempo até reindexar seu site e apontar para a url correta causando vários erros de página não encontrada.

Então você tem 2 caminhos:

O primeiro é deixar que gere erros 404 e perder alguns acessos até que a situação se resolva ou manter as duas URL's retornando para a mesma página.

Para quem conheçe de SEO sabe que ter duas páginas sendo mostrada a partir de dois caminhos pode ser prejudicial para SEO certo?

Então vou mostrar uma alternativa a este problema de maneira muito simples.

Utilizando redirecionamento 301 com Spring MVC

A alternativa mais apropriada é utilizar um redirect 301 da página antiga para a nova página isso vai mostrar para os mecanismos de busca que existe uma nova página e vai encaminhar os usuários que acessarem a antigo para a página correta, dessa forma fazer este redirecionamento pode ser uma boa alternativa.

Vamos ver o controller:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import javax.servlet.http.HttpServletResponse;

@Controller
public class SampleRedirectController {


    @GetMapping("/sample/artigo-name")
    public String mostraArtigo() {
        return "artigo";
    }
		
		// [...]

O código acima deve apontar para uma nova página, no lugar do padrão /sample/artigo-nome queremos chamar de /post/artigo-nome para isso vamos fazer uma modificação no código, veja:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import javax.servlet.http.HttpServletResponse;

@Controller
public class SampleRedirectController {

    @GetMapping("/sample/artigo-name")
    public void mostraArtigoRedirect(HttpServletResponse response) {
        send301Redirect(response, "http://<meu-dominio>/post/artigo-nome");
    }

    @GetMapping("/post/artigo-name")
    public String mostraPost() {
        return "artigo";
    }

    public void send301Redirect(HttpServletResponse response, String newUrl) {
        response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
        response.setHeader("Location", newUrl);
        response.setHeader("Connection", "close");
    }
}
Explicando o código

Primeiro criamos um método send301Redirect que recebe como parâmetro o HTTPServletResponse e a nova URL para o redirecionamento.

No método antigo, não retornamos a página mas sim utilizamos este método para retornar ao cliente que o chamou um redirecionamento com o status 301 (HttpServletResponse.SC_MOVED_PERMANENTLY) o que fará o cliente ser lançado para a nova página.

Por fim, criamos o novo método que será responsável por tratar as requisições para a nova tela, evitando que as requisições que chegarem na URL antiga sejam tratadas pelo novo método sem mostrar erro 404 ao cliente e sem manter dois retornos para a mesma página.

Ficou com dúvidas, deixe sua dúvida nos comentários para que possamos debater.

Wolmir Cezer Garbin

Wolmir Cezer Garbin


Sou formado em Desenvolvimento de Sistemas para Internet pela faculdade Mater Dei e Pós graduado em Desenvolvimento de sistemas em Java pela UTFPR. Trabalho a mais de 9 anos com desenvolvimento em Java, Android e Web utilizando as principais tecnologias do mercado. Atuo como professor na faculdade Mater Dei, programador na Garbo Software e criador do Receitas de Código.

Ver mais

Posts relacionados


Você sabe o que é sitemap? Precisa utilizar sitemap em seu site e não sabe como? Neste post vou mostrar o que é sitemap e como deve utilizar em seu web site.

Ler mais

Code Conference

Esta é uma conferência de código realizada na cidade de Pato Branco para dissiminar tendências e informações sobre programação e novas tecnológias

Veja mais sobre o Code Conference

Publique seu post no Receitas de Código

Agora você pode publicar seu post no Receitas de Código e compartilhar seu conhecimento com muitas pessoas!

Quero publicar