Criando URLs mais amigáveis com Apache
Requisitos para fazer isto: Servidor Apache com: AllowOverride habilitado - http://httpd.apache.org/docs-2.0/mod/core.html#allowoverride
Opcional: mod_rewrite habilitado - http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html (ele é interessante para algumas opções extras, não será usado neste artigo).
Veja este artigo sobre o assunto:
http://www.w3.org/Provider/Style/URI.html
Talvez você já tenha visto o site http://www.phpbrasil.com, ou melhor, a maneira com que suas URLs são formadas. Navegue por algumas páginas e veja a URL mostrada.
O site não usa QueryString! Melhor dizendo, não da maneira convencional. Chega dessa introdução… vamos ao know-how!
Só mais uma coisa… Antes de começarmos, vou lembrar a vocês que a URL:
http://www.seusite.com/scripts/download/13/
Não necessariamente é composta de um caminho para a pasta 13. Quebrar esse paradigma é essencial para entender este artigo.
Vou reescrever a URL acima para facilitar o entendimento:
http://www.seusite.com/scripts.php/download/13/
Isso é um exemplo de URL que você está mais acostumado a ver, em que a página processada está explícita ali. Vale lembrar que a URL mostrada acima é perfeitamente válida. Qual nosso objetivo agora? Esconder aquela extensão, para dar a impressão de que a URL é apenas um caminho, ou seja, pastas.
Vá até a raiz do seu site e crie um arquivo de nome: “scripts”, obviamente sem as aspas e, muito importante, sem extensão!!! Nele adicione o seguinte conteúdo:
<?php
echo @$_SERVER["PATH_INFO"];
?>
Agora abra o seu editor de textos para criarmos outro arquivo e digite:
<FilesMatch “scripts”>
ForceType application/x-httpd-php
</FilesMatch>
Salve este arquivo com o nome de: “.htaccess”. Isso, o arquivo não tem nome, só extensão. Este é um arquivo de configurações extras do Apache, que só será lido se AllowOverride estiver habilitado. Este arquivo irá dizer que o arquivo “scripts” é um arquivo PHP.
Pronto! Acesse agora:
http://www.seusite.com/scripts/download/13/
Repare que foi impresso a você:
/download/13/
Você pode explodir esta string e fazer o que quiser. Exemplo: o primeiro elemento é a ação (download) e o segundo é o ID do script (13).
Bons estudos!
Referência extra:
http://evolt.org/article/Making_clean_URLs_with_Apache_and_PHP/18/22880
http://www.ddj.com/documents/s=2747/nam1012432182
http://httpd.apache.org/docs-2.0/howto/htaccess.html
#####################################################
# Editado por Guilherme Blanco
Um meio simples de obter as variáveis passadas desta forma é este:
CODE$address_exploded = explode($_SERVER['SCRIPT_NAME'], $_SERVER['PHP_SELF']);if (isset($address_exploded[1])) $args = explode(’/', $address_exploded[1]);
A partir daí, acesse as variáveis usando o array $args.
Exemplo:
echo (($args[2] == “php”) ? “Seção PHP” : “Sei lá!”);
# Fim do edit do GB
#####################################################
Se gostou da matéria deixe um comentário or subscribe to the feed and get future articles delivered to your feed reader.





Comentários
Nenhum comentário ainda.
Deixe um comentário