Bem para quem não conhece esse conceito irei dar uma explicadinha aqui.
O que são URLs amigáveis?
São urls fáceis de se decorar e tbm algo mais legível para um bot de sistema de busca..
ex: de url amigável
http://www.seusite.c...php100erro.html
http://www.seusite.c...12/2005/all/php
Bem no 1° caso iríamos acessar o artigo e mostrar o conteúdo do artigo do id 33 e no 2° caso iríamos listar todos os artigos da seção PHP
Agora me fala uma coisa essas urls não são muito mais fácil de se ler do que isso:
http://www.seusite.c...&...=show&id=33
http://www.seusite.c...&...l&categ=php
Veja que isso fica cheio de coisas que para o usuário não é interessante.. e tbm complica a vida para se decorar algo assim.. fora que nos bot de buscadores isso para eles não é nada. Porque não é nada. nessa url ai ele interpreta como nada... já nos caso da URLs amigáveis é outra história..
No caso das URLs amigáveis ele vai ler parte por parte da sua url e fazendo assim um mapeamento de palavras chave então se você tem lá /artigos/ ele sabe que existe uma pasta em seu servidor que é referente artigos então na hora de encontrar algo sobre artigos no sistema dele ele vai dar mais relevância a sua pagina por conter uma pasta que pode haver o que você quer dentro dele.. Mais eu já vou avisando que não é só isso que faz seu site ficar entre os primeiros links há outras coisas por traz como por exemplo usar WebStandards que são a maneira correta de se usar as tags do HTML para se criar uma pagina
Bem chega de filosofia e bora a pratica
O que temos que fazer para ter essas urls amigáveis?
Antes de tudo vamos lembrar que isso só funciona com servidores APACHE ok?
Antes de mais nada verifique se no "httpd.conf" do APACHE o "mod_rewrite.so" sem espaços está habilitado ele provavelmente está assim:
#LoadModule rewrite_module modules/mod_rewrite.so
Se tiver descomente ele tirando o (#) da frente salve o arquivo e restarta o APACHE para que ele reconheça esse modulo
Bem para podermos criar essas URLs amigáveis temos que configurar a pasta onde queremos que nela se tenha essas urls achegáveis.. então iremos configurar um ".htaccess" sem (") nele temos que colocar o seguinte:
Quote
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .(/)?$ /html/seuuser/www/index.php
# >> URLs Amigaveis
Vamos explicar o que está acontecendo aqui:
Quote
# << URLs Amigaveis
* verifica se o modulo rewrite está habilitado se sim executa o bloco dentro
* habilita o modulo Rewrite
RewriteEngine On
* Indica qual é a pasta base de todo o conteudo
RewriteBase /
* Verifica se a url digitada é um arquivo caso seja para aqui
RewriteCond %{REQUEST_FILENAME} !-f
* Verifica se a url digitada é uma pasta caso seja para aqui
RewriteCond %{REQUEST_FILENAME} !-d
* Mostra o caminho completo do meu arquivo index.php que caso nenhum desses comandos assim seja valido vai para ele.
RewriteRule .(/)?$ /html/seuuser/www/index.php
* fecha verificador
* comentário
# >> URLs Amigaveis
Bem até ai tudo certo Ok?
Agora Salve o arquivo lembrando que onde você jogar essa arquivo todas as pastas depois dele terão essas configuração...
Bem crio o seu index.php e nele coloque algo como "Estou Na HOME"
Agora vamos testar para ver se está funcionando. Abre o seu navegador e teste colocando o seguinte.:
http://www.seusite.com.br/
Vai mostrar Estou Na HOME
agora digite
http://www.seusite.com.br/teste
Vai mostrar Estou Na HOME
então já está funcionando.. a e lembrando que se existi-se essa pasta teste em seu servidor ele iria acessar a pasta normalmente sem problema algum
Agora como podemos trabalhar com essas urls amigáveis? agora é no index.php que o negocio vai começar a ter vida.
Abra o index.php e vamos programar nele o seguinte.
Quote
#:: URL amigaveis
$gets = explode("/",str_replace(strrchr($_SERVER["REQUEST_URI"], "?"), "", $_SERVER["REQUEST_URI"]));
?>
O que temos ai?
Nessa linha ele está recuperando um array do conteudo depois do http://www.site.com.br/->aqui então imagina que você digito...
http://www.seusite.com.br/teste/meu
ele vai retorna um array assim
Quote
"",
"teste",
"meu"
)
Então você já tem todas as partes da url certo então vamos dizer que essa url abaixo acessa a seção artigos
http://www.seusite.com.br/artigos
quem ver essa url pensa que é uma pasta artigos que há em seu servidor mais na verdade não é claro que se haver uma pasta artigos ele irá entrar na pasta
Quando recuperamos isso termos o seguinte:
Quote
"",
"artigos"
)
Então vamos dizer que temos o arquivo chamado artigos em nosso servidor dentro da pasta includes/ e ele é responsável pela configuração da sessão artigos como funções métodos dentre outras coisas.
ai faríamos o seguinte:
Quote
#:: URL amigaveis
$gets = explode("/",str_replace(strrchr($_SERVER["REQUEST_URI"], "?"), "", $_SERVER["REQUEST_URI"]));
#:: Elimita o 1° tem da array que no nosso caso é sempre vazio
array_shift($gets);
if(file_exists("includes/adm." . $get[0] . ".php")){
require ("includes/adm." . $get[0] . ".php");
}else{
echo "você ESTÁ NA HOME";
}
?>
E o que aconteceu?
ao acessar o http://www.seusite.com.br/artigos se existir a pasta ele entra na pasta caso não exista a pasta ele vai executar o script index.php e vai verificar se esse arquivo artigos existe dentro da pasta includes/ no seu servidor se sim ele vai incluir ele
Sako?
Bem está ai prontinho e funfando ^^ a e quanto ao método $_GET e $_POST continuam funcionando normal
Atenção:
Há uma desvantagem em usar URLs amigáveis você tem que em todos os links colocar o cominho completo para ele ex: você tem um menu e nele tem os seguinte links
/categorias
/php
se você tentar acessar assim ele não vai acessar pois imagina que você esteja no link http://www.site.com....inhavo/com/voce
quando você tentar acessar esses links acima ele vai fazer isso:
http://www.site.com....voce/categorias
http://www.site.com....vo/com/voce/php
Então você viu que num rola
http://www.site.com.br/categorias
http://www.site.com.br/php
Bem é isso ai até mais galera


Entrar
Cadastre-se
Ajuda

Quote






