Fazer um Redirect 301 utilizando Spring MVC

Postado em por Wolmir Cezer Garbin em SEO | 443 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.


Tem algo para vender? AnuncieOn.com

Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


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

Tem algo para vender? AnuncieOn.com

FIQUE POR DENTRO

Receba as novidades todo mês em seu e-mail!

Apoiadores

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