Urls amigáveis no apache


Vou fazer aqui um resumo rápido de como habilitar urls amigáveis no Apache.
Procurando em diversos documentos na internet, vi que tinha que fazer algumas coisas:
  • habilitar o .htaccess no apache
  • carregar o modulo mod_rewrite
  • criar a configuração no .htaccess

Para habilitar o .htaccess no servidor apache, procure no httpd.conf o seguinte trecho:

Options FollowSymLinks Indexes
AllowOverride None
Order allow,deny
Allow from all
Não se esqueça de reiniciar o apache, como estou usando CentOS eu fiz assim:
service httpd restart
Agora para carregar o módulo mod_rewrite verifique se a linha abaixo está descomentada:
LoadModule rewrite_module modules/mod_rewrite.so

Agora vamos para a pasta do site que fica em:
/var/www/html
Criei então o .htaccess no diretório root do meu site e coloquei o seguinte conteúdo:
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^emails /pagina.php?idPagina=127 [nc]

Detalhe: o endereço acima é o que eu estava tentando reescrever, era somente um endereço um endereço, se pesquisar pela internet verá que a configuração do mod_rewrite era para reescrever todas as página de um site, e nesse caso fiz isso para atender um necessidade em específico.
Explicando o código acima:
Temos então o arquivo .htaccess dentro da pasta do site, assim qualquer requisição que chegar ao Apache, ele usará deste arquivo para definir o que fará caso determinadas cheguem até ele, no código temo que as instruções ficam dentro de uma diretiva indicando o modulo que será usado para interpretar a sequência. Percebe que em:
RewriteRule ^emails /pagina.php?idPagina=127 [nc]
Temos ao final o parâmetro:
[nc]
Esse parâmetro é fundamental, sem ele, a reescrita não funciona, pela regra em RewriteRule, temos que tudo do site atual que chegar e começar terminar com emails será redirecionado para o endereço :
/pagina.php?idPagina=127
Nesse caso o endereço acima é anexado a home do site, no caso www.meusite.com.br ficando então:
www.meusite.com.br/pagina.php?idPagina=127
Mas sempre aparecer o endereço :
Espero que essa dica seja útil.

Comentários

Postagens mais visitadas deste blog

Transformando o Linksys WRT54G2 V1 em bridge, repetidor

Recuperando partições deletadas

Windows 11 não conecta na rede 5G do synology router.