Resumo: Criar URLs mais amigáveis com Apache.
Dificuldade: 3/5
Ao som de (hehehehehe): Leonardo - Fantasias
-----
Requisitos: Servidor Apache com:
AllowOverride habilitado - http://httpd.apache....l#allowoverride
Opcional: mod_rewrite habilitado - http://httpd.apache....od_rewrite.html (Ele é interessante para algumas opções extras, não será usado neste artigo)
-----
Atualmente muito é discutido sobre a forma com que as URLs devem ser apresentadas. A técnica conhecida como QueryString, muito conhecida atualmente, torna ligeiramente mais complicada a questão da indexação das páginas pelos buscadores, uma vez que eles terão de "decidir" se a página: http://www.seusite.com/?newsid=777 é diferente de: http://www.seusite.com/?color=blue.
Veja este artigo sobre o assunto:
http://www.w3.org/Pr.../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.c...ts/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.c...ts/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/art...d_PHP/18/22880/
http://www.ddj.com/d...2182/index.html
http://httpd.apache....o/htaccess.html
#####################################################
# Editado por Guilherme Blanco
Um meio simples de obter as variáveis passadas desta forma é este:
$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
#####################################################
Edição feita por: Dudu, 14/03/2010, 14:34.