Arquivo da tag: htaccess

Adicionando ou Removendo o WWW da URL com .htaccess

Para inicio de conversa é necessário saber o que é o htaccess e suas possibilidades, então recomendo a leitura em:
http://httpd.apache.org/docs/1.3/howto/htaccess.html

O que vamos fazer a seguir é adicionar o www. no inicio do dominio caso ele não seja digitado pelo usuário, por exemplo:

Usuario digita: mepergunte.com

O htaccess converte para: www.mepergunte.com

Para isso, basta editar (ou criar) o arquivo .htaccess na raiz do seu dominio com o seguinte código:

1
2
3
4
RewriteEngine On
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) http://www.mepergunte.com/$1 [R=301,L]

Altere no código acima o domínio, para onde será feito o redirecionamento, inclusive colocando a ultima linha com um diretorio qualquer.

1
RewriteRule (.*) http://www.mepergunte.com/site/$1 [R=301,L]

Agora vamos fazer o processo inverso, que inclusive é o meu favorito.

Veja como remover o www. do seu domínio automaticamente utilizando .htaccess

1
2
3
4
RewriteEngine On
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule (.*) http://%1/$1 [R=301,L]

Basicamente so altera a linha 3 e 4, ja que as duas primeiraas so ativam e setam opções que serão utilizadas no código.

A linha 3 é a condição e a linha 4 o que será executada caso a condição seja válida.

Bom, acho que é isso. Aproveitando o post, algumas dicas bacanas para .htacess você pode encontrar no site Htaccess Tools, como detecção de navegação por iPhone, redirecionamentos, sistema de senhas, etc.

Como fazer URLs amigaveis com .htaccess e php

Para quem não sabe o que é URL amigável vou explicar através de exemplo para evitar dúvidas.

URL Convencional: http://www.exemplodominio.com.br/noticia.php?id=1237
URL Amigável: http://www.exemplodominio.com.br/noticia/1237/

Viu a diferença? Além da vantagem de ficar mais elegante, facilita bastante a indexação dos mecanismos de buscas. Mas como fazer o controle de arquivos e identificadores? Então vamos aos códigos.

Primeiro você deve editar ou criar um arquivo .htaccess na raiz do seu site e inserir o código abaixo.

1
2
3
4
5
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(!.(\.gif|\.jpg|\.png|\.css|\.js|\.txt|\.php|\.htm|\.html)|.+[^/])$ /$1/ [L]
RewriteRule ^([^-]+)/$ /funcao.php?frase=$1&%{QUERY_STRING} [L]

A primeira linha linha é para ativar o módulo. A segunda e terceira linha é para ignorar arquivos e diretorios respectivamente. Na quarta linha ignora alguns tipos de arquivos. E finalmente na quinta linha, joga a string para um arquivo php qualquer, neste caso funcao.php.

1
2
3
4
5
$geturl = explode('/', $_SERVER['REQUEST_URI']);
if ($geturl[1] == 'noticia') {
    $id = $geturl[2];
    include noticia.php;
}

Interpretando rapidamente o código, a linha inicial captura a variavel gerada pela URL e usa a função explode para separar as palavras da URL.

Em seguida eu faço uma condicional IF para verificar se é noticia e setar o ID da mesma. Você pode incrementar como quiser o código e ter quantas palavras desejar na URL. Basta ter um pouco de criatividade.

Lembre-se, para funcionar o módulo apache Rewrite deve estar ativo no servidor Apache. Para maiores informações, procure a empresa de hospedagem do seu site.