em

Redirecionando URL não www para www com o .htaccess

Se você quer redirecionar todas as solicitações de URL em seu site digitadas sem www para a versão www, tudo que você precisa fazer é adicionar o seguinte código ao seu arquivo htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

Explicando o código:

A primeira linha define uma condição: somente se a condição for verdadeira, a segunda linha será processado. Nossa condição pode ser “traduzido” para: “se o nome do host não começar com www.”…

Os caracteres da expressão regular !^www\. significam:

! = não
^ = inicio da expressão
\. = . (A barra invertida é o caractere de escape, os pontos têm um significado especial nas expressões regulares por isso devemos usar a barra invertida para que possam ser ignorados).

Resumindo !^www\. significa “se não começa com www.”.

A segunda linha é a nossa regra de reescrita que vai analisar e reescrever a URL:

^(.*)$

(.*) significa zero ou mais caracteres (o ponto significa qualquer caractere, o asterisco significa zero ou mais), o “$” indica o fim da regra.

Em seguida, vem a parte que diz como reescrever a url:

http://www.%{HTTP_HOST}/$1 [R=301,L]

O código %{HTTP_HOST} será substituído pelo nome do seu host, o 1$ é uma variavel que pegará o resto do endereço após o “/” da expressão.
Finalmente [R = 301, L] serve para informa que este é um redirecionamento permanente (código HTTP 301), e para que não se processem mais regras de reescrita (se houver alguma após esta).

Gostou dessa matéria?

Inscreva seu email para receber atualizações com as últimas publicações do nosso blog.

Deixe o seu comentário: