Configurando o Nginx para redirecionar www para non-www
Proprietários de sites frequentemente usam uma única versão de seu domínio para melhorar o SEO e a experiência do usuário. Redirecionar a versão www de um domínio para a versão non-www (ou vice-versa) é comum. Para usuários do Nginx, configurar esse redirecionamento requer uma configuração específica. Este artigo explica como redirecionar www para non-www usando Nginx, ajudando você a manter uma estrutura de domínio consistente para seu site.
Configurando o Nginx para Redirecionamento de www para Non-www
Criando um Bloco de Servidor para Redirecionamento
Para configurar um bloco de servidor para redirecionamento de www para non-www:
-
Crie um novo arquivo de configuração:
sudo nano /etc/nginx/sites-available/example.com
-
Adicione este bloco de servidor:
server { listen 80; server_name www.example.com example.com; # Outras configurações do servidor vão aqui }
-
Use a diretiva
server_name
para especificar as versões www e non-www do seu domínio. -
Salve o arquivo e saia do editor de texto.
-
Crie um link simbólico para ativar o site:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
-
Remova a configuração padrão do Nginx:
sudo rm /etc/nginx/sites-enabled/default
Esta configuração forma a base para implementar o redirecionamento de www para non-www no Nginx.
Implementando o Redirecionamento 301 no Nginx
Escrevendo a Regra de Redirecionamento
Para redirecionar www para non-www usando Nginx, use a diretiva return
com um código de status 301. Isso indica um redirecionamento permanente. Adicione esta regra ao seu bloco de servidor:
server {
listen 80;
server_name www.example.com example.com;
if ($host = www.example.com) {
return 301 $scheme://example.com$request_uri;
}
# Outras configurações do bloco de servidor
}
Esta regra verifica se o host solicitado é a versão www do seu domínio. Se for, ele redireciona para a versão non-www, mantendo o esquema original (http ou https) e quaisquer parâmetros de URL.
Testando a Configuração do Nginx
Após escrever a regra de redirecionamento, teste sua configuração do Nginx para erros:
-
Execute este comando:
sudo nginx -t
-
Se não houver erros, você verá uma mensagem indicando que o teste de configuração foi bem-sucedido.
-
Se houver erros, verifique seu arquivo de configuração e corrija quaisquer problemas.
Depois que o teste de configuração passar, recarregue o Nginx para aplicar as mudanças:
sudo systemctl reload nginx
Este comando recarrega o Nginx sem interromper conexões ativas. Seu redirecionamento de www para non-www deve agora funcionar. Teste-o visitando seu domínio www em um navegador web para confirmar que ele redireciona para a versão non-www.
Considerações Adicionais para Redirecionamento
Lidando com Conexões HTTPS
Para lidar com conexões HTTPS, configure certificados SSL e atualize seu bloco de servidor Nginx:
-
Obtenha um certificado SSL para seu domínio.
-
Instale o certificado SSL em seu servidor.
-
Atualize seu bloco de servidor Nginx para suportar HTTPS:
server {
listen 80;
listen 443 ssl;
server_name www.example.com example.com;
ssl_certificate /caminho/para/seu/certificado.crt;
ssl_certificate_key /caminho/para/sua/chave.key;
if ($host = www.example.com) {
return 301 https://example.com$request_uri;
}
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
# Outras configurações SSL e do servidor
}
Esta configuração redireciona o tráfego HTTP e HTTPS de www para non-www, e usa HTTPS para todas as conexões.
Configuração de DNS para Domínios www e Non-www
Para configurar o DNS para domínios www e non-www:
-
Crie um registro A para seu domínio non-www (example.com) apontando para o endereço IP do seu servidor.
-
Configure um registro CNAME para o subdomínio www (www.example.com) apontando para seu domínio non-www.
Exemplo de registros DNS:
example.com. A 123.45.67.89
www.example.com. CNAME example.com.
Após fazer alterações no DNS, aguarde o tempo de propagação. Isso pode levar até 48 horas, mas geralmente ocorre em poucas horas. Use ferramentas online de consulta DNS para verificar o status de propagação do seu domínio.
Ao lidar com conexões HTTPS e configurar o DNS, você cria um sistema de redirecionamento seguro para seus domínios www e non-www.
Solucionando Problemas Comuns de Redirecionamento
Lidando com Loops de Redirecionamento
Loops de redirecionamento ocorrem quando redirecionamentos levam de volta à URL original, criando um ciclo. Para encontrar e corrigir redirecionamentos circulares:
-
Use verificadores de redirecionamento online ou ferramentas de desenvolvedor do navegador para identificar loops.
-
Verifique seus arquivos de configuração do Nginx em busca de regras de redirecionamento conflitantes.
-
Procure por redirecionamentos em seu sistema de gerenciamento de conteúdo ou arquivos .htaccess.
Para encontrar problemas de redirecionamento nos logs do servidor:
-
Acesse os logs de erro do Nginx:
sudo tail -f /var/log/nginx/error.log
-
Procure por entradas de redirecionamento repetidas ou mensagens de erro.
-
Use ferramentas de análise de logs para identificar padrões no comportamento de redirecionamento.
Otimizando o Redirecionamento para Mecanismos de Busca
Para ajudar os mecanismos de busca a entender seus redirecionamentos:
-
Use redirecionamentos 301 (permanentes) para www para non-www. Verifique isso na sua configuração do Nginx:
return 301 $scheme://example.com$request_uri;
-
Atualize seu sitemap XML:
- Remova URLs www
- Adicione URLs non-www
- Envie o sitemap atualizado para os mecanismos de busca
-
Altere seu arquivo robots.txt:
- Use a versão non-www na diretiva Sitemap
- Exemplo:
Sitemap: https://example.com/sitemap.xml
-
Use o Google Search Console para:
- Definir sua versão preferida do domínio
- Verificar erros de rastreamento relacionados a redirecionamentos
Ao corrigir loops de redirecionamento e otimizar para mecanismos de busca, você pode melhorar o desempenho do seu site e sua visibilidade nas pesquisas.