O objetivo deste tutorial é forçar qualquer nome de domínio redirecionar para sua versão sem WWW:
- https://www.nomedodomino.com.br -> https://nomedodominio.com.br
Configuração no Apache ou .htaccess
A alteração pode ser feita tanto no arquivo de hosts do apache ou, de forma ainda mais simples, editando o arquivo .htaccess na pasta raiz do site.
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://nomedodominio.com.br%{REQUEST_URI} [L,NE,R=301]
Entendendo os comandos
RewriteEngine On
habilita o mecanismo de reescrita do Apache
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
Estas duas linhas definem as condições usadas para determinar se a requisição deve ser redirecionada ou não. Se uma delas retornar true
, o redirecionamento deve ser ativado.
A primeira verifica se a requisição foi feita por HTTP (não seguro).
A segunda verifica se a requisição foi feita com WWW.
A última linha RewriteRule ^ https://nomedodominio.com.br%{REQUEST_URI} [L,NE,R=301]
faz o redirecionamento acontecer: ela encaminha a requisição para o domínio sem WWW e adiciona o restante da URI (com possíveis parâmetros).
O que significam as opções usadas L, NE, R e NC?
- L = pare de processar outras regras, e redirecione imediatamente (não irá ler outras regras que estiverem abaixo desta linha)
- NE = não substituir caracteres especiais
- R=301 = usar o status HTTP 301 como resposta. Este tipo de status, diz ao solicitante da requisição que o endereço mudou permanentemente. Isso é útil para que os buscadores (Google, Bing, etc) saibam qual é a nova URL que deve ser acessada por padrão. Veja aqui uma lista dos status HTTP.
- NC = significa que o Apache deve-se fazer distinção entre caracteres maiúsculos e minúsculos