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).

Compartilhe Também:

Deixe seu comentário