Olá pessoal irei mostrar como utlizar o .htaccess para criar url’s amigáveis para seu site.
O que é url Amigável ?
As url’s amigáveis são aqueles que podem ser lidas fácilmente por um pessoa e principalmente pelos mecanismo de busca, um exemplo a url desse post é ” http://www.ricardo.com/url-amigavel-com-htaccess” isso é uma url amigável, ao invés desse tipo de url “http://www.ricardok.com/?post=387″, isso é legível apenas para o sistema aonde essa url aponta, pois para as pessoas e os mecanismo de busca não.
Como fazer as url’s amigáveis?
Passo 1 – Você precisa habilitar no seu apache o mod_rewrite.
Procure o arquivo httpd.conf (geralmente ele se encontra dentro da pasta conf ou config).
Abra o arquivo como edição e procure pela linha
#LoadModule rewrite_module modules/mod_rewrite.so
Descomente removendo o # do começo da linha, ficando assim
LoadModule rewrite_module modules/mod_rewrite.so
Agora procure a linha
AllowOverride None
E altera para ficar assim
AllowOverride All
Com isso Habilitamos o servidor apache a interpretar o mod_rewrite.
para maiores informações mod_rewrite apache
Passo 2 Criar o arquivo .htaccess
Crie um arquivo novo em qualquer editor e salve dessa forma “.htaccess” (sem as aspas) abra o arquivo e edite ele com o código abaixo:
Options +FollowSymlinks
#Habilita oo mod_rewrite no arquivo
RewriteEngine On
#diz que o diretorio base é /
RewriteBase /
#verifica se existe um arquivo com o nome do parametro vindo após a /
RewriteCond %{REQUEST_FILENAME} !-f
#verifica se existe uma pasta com o nome do parametro vindo após a /
RewriteCond %{REQUEST_FILENAME} !-d
#Direciona a url para a página index.php
RewriteRule .(/)?$ index.php
Estamos quase lá. Agora falta apenas tratar os parametros no php
Passo3 – Tratando os parametros no PHP
no arquivo index.php você trata os parametros vindos da url assim:
#Essa parte pegamos a varaivel do servidor "REQUEST_URI" e tratamos ela para pegar os parametros vindo após a "/"
$params = explode("/",str_replace(strrchr($_SERVER["REQUEST_URI"], "?"), "", $_SERVER["REQUEST_URI"]));
#A variavel params armazena agora um array de conteudo com todos os parametros que foi digitado na url
#Nessa parte nos eliminamos o primeiro elemento da variavel $params pois é um elemento vazio.
array_shift($params);
Assim temos um array com os parametros vindos da url e podemos trabalhar da forma que for melhor para cada um. Exemplo:
Acessando a url “http://www.teste.com/pagina/institucional”
a variavel $params ficaria assim
Array( [0] -> "pagina", [1] -> "institucional" )
Sendo assim poderia pegar a primeira variavel para ser o arquivo a ser acessado e a segunda variavel a ação que o arquivo executaria.
Utilizando esse método você consegue pegar N variáveis vinda da url, a cada “/” é uma variável, apenas teria que ser tratada na página o cada variável é.
Para utilizar essa mesma regra em servidores IIS você tem que utilizar em vez do arquivo .htaccess o arquivo web.config e dentro dele utilizar a seguinte regra.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Imported Rule 1">
<match url=".(/)?$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" pattern="" ignoreCase="false" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Isso ae pessoal, espero ter ajudado






