URL Amigável – PHP e arquivo .htaccess
nov 27
Artigos PHP, ER, Scripts PHP, apache .htaccess, HTML, PHP, SEO, url amigável 3 Comments
Simples mas bem eficiente, exemplo pratico de como usar url amigável em seu site!!…..
Crie um arquivo “.hatccess” no diretório raiz de seu site!.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php
</IfModule>
Toda e qualquer URL digitada, será direcionada para o seu arquivo “index.php”. Então agora, é só você tratar os parâmetros.
Se você usa uma URL do tipo:
www.site.com.br/index.php?pag=catalogo&id=1
Você pode deixar ela amigável:
www.site.com.br/catalogo/1
Para você pegar esses parâmentros da url amigável, pode se usar expressões regulares. No inicio de seu arquivo “index.php” coloque o código:
$aux = substr( $_SERVER['REQUEST_URI'], strlen('/'));
if( substr( $aux, -1) == '/'){
$aux=substr( $aux, 0, -1);
}
$urlARRAY___ =explode( '/', $aux);
O que acontece aqui ?, Você está pegando sua url e separando dentro de um array, pela string de separaçao “/” (barra).
Se tiver (catalogo/1) então ele separa, “catalogo” e “1“, porque a / (barra) está definida como separador.
A sua url é: www.site.com.br/catalogo/1 . Então por causa do htaccess, ele será direcionado para o arquivo “index.php” e depois a url será recortada levando em consideração a / (barra) como separador:
$urlARRAY___[1] vai receber o valor “catalogo”
$urlARRAY___[2] vai receber o valor “1″
Pronto feito isso! é só vc trabalhar com os seus parâmentro…
Uma observação importante:
Usando esse exemplo de URL, você deve chamar arquivos de imagens, css, video, flash etc..com o caminho completo:
Se antes você usava:
<link rel="stylesheet" type="text/css" media="all" href="css/stylo.css" />
Agora você deve usar:
<link rel="stylesheet" type="text/css" media="all" href="http://www.site.com.br/css/stylo.css" />
Por causa do arquivo .htaccess em ação, você precisa arrumar esses caminhos para sua aplicação achar os arquivos corretamente.
RSS
Blog Alex (Design / Artes / Cultura)
Blog Leonardo (Infra / Redes / Segurança)
Caos Developers
dez 03, 2010 @ 16:43:11
Parabéns, Vitor!
O código que vc colocou funciona muito bem e está muito bem explicado.
Ótimo!
jan 12, 2012 @ 16:39:44
Olá, Vitor!
Uma coisa que eu não consigo entender:
imagine assim a página do site:
Link 1- http://www.site.com/pagina.php?cod_usuario=1
Eu quero que ela fique:
Link 2- http://www.site.com/pagina/joao
até aqui, tudo bem, mas imagine que eu tenho uma página que exiba todos os usuários, em forma de tabela com a sua foto e seu nome abaixo dela, o que eu quero fazer e não acho em lugar nenhum é fazer com que o link que já apareça quando eu pare o mouse sobre a foto do usuário já entre em ação o Link 2 e não apenas quando o usuario digitar isso na barra de endereços
como eu faço para o .htaccess já reconhecer esses valores que são gerados automaticamente?
jan 22, 2012 @ 14:38:45
Olá joão!…
Nesse caso, vc precisa arrumar todas as suas url’s, exemplo, no lugar de “pagina.php”, vc tem que colocar “pagina”……….. vc precisa desenvolver o seu site setando as url’s já com o formato amigável, entendeu ?
Para nomes dinamicos como o “joão”, vc precisa pegar a string que vem do banco e limpar ela antes de usar, deixando tudo em letra minuscula, e tirando os seus acentos. (vc pode usar expressões regulares para isso)……
Mas eu não aconselho usar nomes no lugar de ID’s para buscar no banco, porque se vc editar o nome, pode acontecer da url não funcionar mais, e se o google já indexou por exemplo, a url antigo vai parar de funcionar, exemplo:
http://www.site.com/pagina/joao
Se editar o nome:
http://www.site.com/pagina/joao-paulo
Um jeito de evitar isso, é usar o nome mais o ID, ai vc busca no banco pelo ID, exemplo:
http://www.site.com/pagina/joao/2
http://www.site.com/pagina/vitor/30
(Usando o ID, vc não precisa se preocupar com a mudança do nome)
Espero ter ajudado!… Att..