Redirecionamento WWW no Cloudflare

Está tendo problemas com redirecionamento 301 duplo no seu domínio com WWW? Algumas páginas não estão redirecionando de HTTP para HTTPS? Neste artigo vou passar uma dica rápida de como resolver esse problema.

Essa função é a solução de diversos problemas como ausência de redirecionamento, site sendo acessado da versão http, erros de múltiplos redirecionamentos e muitos outros.

Duplo Redirect 301 no [http://www.]

Hoje fui chegar o SSL do meu site no httpstatus.io e me deparei com dois redirect 301 na minha versão com www e sem https do site. Pode parecer algo insignificante mas é estritamente importante para o SEO do seu site.

Como pode ver na imagem abaixo, a URL do site com HTTP://WWW está com dois redirecionamentos 301, provavelmente um para versão HTTPS e outro para versão sem WWW do site.

Redirecionamento www no cloudflare

Para solucionar esse problema é bastante simples. Eu uso Cloudflare, então eu acessei meu painel e domínio no CloudFlare e fui até a aba Page Rules.

Lá eu criei um redirecionamento único da versão www direto para versão https sem www. Essa regra além de solucionar o problema descarta na maioria das vezes a necessidade de usar algum plugin ou regra de redirecionamento no servidor nginx ou no .htaccess do apache.

Ao acessar o Page Rules, basta criar uma nova regra redirecionando www.meusite.com/* para https://meusite.com/$1 usando a regra de redirecionamento 301.

Os valores [*] e [$1] são importantes porque eles indentificam qual página o usuário está entrando e redireciona diretamente para versão https dessa página ao invés de redirecionar para página inicial.

Veja como eu configurei meu domínio abaixo. Faça o mesmo depois clique em salvar e limpe o cache do seu CloudFlare. Assim o redirecionamento duplo vai deixar de existir, restando apenas um 301.

Redirecionamento www no cloudflare

Recomendamos ler também nosso Guia sobre SEO e Ferramentas.

Redirecionamento por arquivo .HTACCESS

A mesma regra de redirecionamento pode ser aplicado diretamente do servidor, caso não utilize Cloudflare. Apesar de indicarmos fortemente usar um CDN e fazer isso nele.

A regra a ser aplicada no arquivo .HTACCESS vai estar abaixo. Lembre-se, só faça isso se não estiver usando Cloudflare.

<IfModule mod_rewrite.c>
   RewriteCond %{HTTPS} off [OR] 
   RewriteCond %{HTTP_HOST} ^www\.seusite\.com [NC] 
   RewriteRule (.*) https://seusite.com/$1 [L,R=301]
</IfModule>

Redirecionando WWW no Nginx

Se seu servidor for puramente Nginx como meu, sem dúvidas é muito mais fácil você usar o CloudFlare e o primeiro tutorial. Caso você ainda seja teimoso, irei deixar uma configuração para Nginx, mas não vou gastar meu tempo explicando ela, já que não sou nenhum profissional de Nginx Config:

#=========================#
# domain settings #
#=========================#

# Catch http://domain, and http://www.domain
server {
        listen 80;
        server_name www.domain domain;

        # Redirect to https://domain
        return 301 https://domain$request_uri;
}

# Catch https://www.domain
server {
        listen 443;
        server_name www.domain;

        # Redirect to https://domain
        return 301 https://domain$request_uri;
}

# Catch https://domain
server {
        listen 443;
        server_name domain;

        root /usr/share/nginx/domain;
        index index.html index.htm;

        ssl on;
        ssl_certificate /etc/nginx/ssl/server.crt;
        ssl_certificate_key /etc/nginx/ssl/server.key;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
        ssl_prefer_server_ciphers on;

        location / {
                try_files $uri $uri/ =404;
        }
}

Espero que as dicas desse artigo resolva seu problema com duplo redirecionamento ou ausência de redirecionamento WWW. Se gostou compartilhe com os amigos, não deixe o site deles ter redirecionamento duplo e prejudicar o SEO deles.