Criando URLs mais amigáveis com Apache

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.

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

(obrigatório)

(obrigatório)