Ir para conteúdo
  • Cadastre-se

URLs amigáveis em seu site com .htaccess


Posts Recomendados

Hoje em dia é muito comum o uso de scripts que rodam no servidor (server-side) para gerar conteúdo dinâmico em páginas web.

Isto é muito interessante, mas gera um problema: URLs grandes ou complicadas demais, difíceis de memorizar e sem significado, que podem até mesmo dificultar a indexação do site por mecanismos de busca.

Retirado de brunotorres.net

Lembro que quando criei meu site, os códigos para criar URLs amigáveis que encontrei na internet não serviam. (O motivo não sei, talvez o servidor fosse chato mesmo :mad:)

Segue o único código que me serviu:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^index/?$ ./index.php

</IfModule>

Em RewriteRule, podem ver que a index.php poderá ser acessada por /index.

Para adicionar mais páginas, copie a linha e faça as modificações necessárias.

Link para o comentário
Compartilhar em outros sites

Não é necessária toda essa trabalheira PedroFelipe,

Eu fiz da seguinte maneira:

RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-f

RewriteCond %{SCRIPT_FILENAME} !-d

RewriteRule ^/?([a-zA-Z_-]+)/?$ index.php?pagina=$1

Ou seja, toda requisição irá redirecionar para a pagina, por exemplo www.meusite.com/pagina/ , irá reescrever para index.php?pagina=pagina mantendo a url. Lembrando que aí você tem que criar uma função para buscar a pagina e incluir.

Para evitar conteudo duplicado eu fiz uma regra para redirecionar www.meusite.com/pagina/ para www.meusite.com/pagina (Além de evitar que os motores de busca reconheçam como um diretório, que seria um prejuízo no SEO)

Link para o comentário
Compartilhar em outros sites

Eu faço assim e funciona perfeito e fica fácil de entender

#URL Amigável

RewriteEngine on

RewriteRule ^cursos/?$ cursos.php [NC,L]

RewriteRule ^links/?$ links.php [NC,L]

RewriteRule ^sobre-nos/?$ sobre-nos.php [NC,L]

RewriteRule ^contato/?$ contato.php [NC,L]

RewriteRule ^enviar_email/?$ enviar_email.php [NC,L]

RewriteRule ^envia/?$ envia_comentario.php [NC,L]

Link para o comentário
Compartilhar em outros sites

Amigos, eu uso um simples porém muito funcional

RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-f

RewriteCond %{SCRIPT_FILENAME} !-d

RewriteCond %{SCRIPT_FILENAME} !(index.php|index.htm|index.html)

RewriteRule ^([A-Za-z0-9_-]*)$ $1.php

Vou explicar, qualquer arquivo, php, html, htm o .htacess manipula e deixa ele sem a extensao final, não precisa de mais nada.

seusite.com/index.php vai ficar seusite.com/index muito bom, experimentem.

abraço.

Editado por Dermival Souza
errinho básico
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Concorda com os nossos termos?