Uma das dificuldades que se apresenta quando utilizamos URL dinâmicas, ou seja, que envia valores através do método GET; radica no momento quando os robôs que navegam por toda a rede recopilando informação de diferentes índoles, ingressam ao nosso web site e se conseguem com parâmetros que eles não admitem na maioria dos casos.
Por exemplo, temos esta url: http://localhost/index.php?cat=4&subcat=45&id=4566
Neste caso a maioria dos indexadores não admitiriam mais de 1 só parâmetro e fariam caso omisso aos caracteres: ( & ? = # ) seguintes. Então, já dependeria de nosso PageRank se essa url é indexada aos principais motores de busca.
Entretanto, existe uma forma que "DISFARÇA" a url, por dizer alguma palavra, sem modificar a funcionalidade de nossa página; editando o arquivo .htaccess que deve se localizar no começo de cada diretório.
Devemos agregar as seguintes linhas:
<? RewriteEngine on
RewriteRule ^.*$ index.php
?>
Onde index.php, é nosso arquivo principal do diretório a mostrar.
Agora voltando ao exemplo anterior, já poderíamos chamar a url da seguinte forma:
http://localhost/4/45/4566
Já não teremos nenhum problema com os motores de busca. Agora nos resta uma tarefa sumamente simples.
Como extrair esses valores que se armazenam nessa url?
Certamente $REQUEST_URI, nos devolve todo o fragmento ou path físico da url atual. O seguinte seria utilizar uma função que nos permita dividir essa url; utilizando a / (Barra) como ponto de referência, podendo ser com explode() que nos devolve uma matriz com as de cada uma das partes.
Código Fonte:
<? PHP
$aux = substr( $_SERVER['REQUEST_URI'], strlen('/'));
if( substr( $aux, -1) == '/'){
$aux=substr( $aux, 0, -1);
}
$urlARRAY___ =explode( '/', $aux);
/////////////VALORES A UTILIZAR
$CATEGORIA=$urlARRAY___[0];
$SUBCATEGORIA=$urlARRAY___[1];
$ID=$urlARRAY___[2];
?>