28 comentários

  1. Junior Eberhardt

    muito bom este tutorial, gostei muito mesmo. só acho que tem um erro ali na linha 5 do .htaccess, pelo menos eu mudei aqui e deu certo…

    RewriteRule ^([^/]*)$/ index.php?url=$1

    a barra esta depois do cifrão, e aqui não estava funcionando quando digitava localhost/urlamigavel/sobre/, então mudei para antes do cifrão e deu certo…

  2. Regis Lacerda

    Boa noite Rafael.
    Antes de mais nada, parabéns pelo site. Excelentes tutoriais.
    Eu sou completamente leigo no contexto de mexer com Apache, faço desenvolvimento estruturado e pra ser mais exato, tenho sistemas já operando dessa forma onde o usuário acessa o caminho absoluto. Não tem segurança alguma, eu sei, mas foi o que deu pra fazer na época e agora é complicado mudar pois o sistema já cresceu absurdamente.
    Bem, essa idéia eu gostaria de implementar, porém, gostaria de saber se é possível usar o .htaccess dessa forma:

    RewriteEngine on
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^([^/]*)$ admin.php?pagina=$1
    RewriteRule ^([^/]*)/$ admin.php?pagina=$1
    RewriteRule ^([^/]*)/([^/]*)$ admin.php?pagina=$1&categoria=$2
    RewriteRule ^([^/]*)/([^/]*)/$ admin.php?pagina=$1&categoria=$2

    Ex.:
    ________________________________
    RewriteEngine on
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^([^/]*)$ usuario.php?pagina=$1
    RewriteRule ^([^/]*)/$ usuario.php?pagina=$1
    RewriteRule ^([^/]*)/([^/]*)$ usuario.php?pagina=$1&categoria=$2
    RewriteRule ^([^/]*)/([^/]*)/$ usuario.php?pagina=$1&categoria=$2
    _____________________________________

    Ou seja, colocar dentro do .htaccess uma regra para cada tipo de usuário???

    Ex.:
    RewriteRule ^([^/]*)$ admin.php?pagina=$1
    RewriteRule ^([^/]*)$ usuario.php?pagina=$1

    Pois, meu index.php faz a validação do usuário e o direciona para a página inicial correto que busca num diretório todas as páginas que podem ser acessados por aquele usuário em questão

    É possível fazer dessa forma???
    Obrigado desde já..

  3. Regis Lacerda

    Opa…
    Ficou meio confuso, mas seria as duas regras juntas:
    Ex.:
    ________________________________
    RewriteEngine on
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^([^/]*)$ admin.php?pagina=$1
    RewriteRule ^([^/]*)/$ admin.php?pagina=$1
    RewriteRule ^([^/]*)/([^/]*)$ admin.php?pagina=$1&categoria=$2
    RewriteRule ^([^/]*)/([^/]*)/$ admin.php?pagina=$1&categoria=$2

    RewriteEngine on
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^([^/]*)$ usuario.php?pagina=$1
    RewriteRule ^([^/]*)/$ usuario.php?pagina=$1
    RewriteRule ^([^/]*)/([^/]*)$ usuario.php?pagina=$1&categoria=$2
    RewriteRule ^([^/]*)/([^/]*)/$ usuario.php?pagina=$1&categoria=$2

    Agora sim…

  4. Regis Lacerda

    Uma outra perguntinha…
    Se não for pedir demais, teria como mostrar como fariamos a passagem de parametros usando a URL amigável???

    Pergunto isso pois realizo, por exemplo, a alteração de um dado no DB, óbvio, e não sei como passaria os parametros via URL amigável…

    Obrigado.

  5. Regis Lacerda

    Bom, consegui resolver esse problema Rafael…
    Como o seu blog é bastante visto fica a dica pro pessoal…
    No caso eu só aumentei a quantidade de parametros…
    Desta forma:

    RewriteEngine on
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^([^/]*)/$ index.php?usuario=$1
    RewriteRule ^([^/]*)/([^/]*)/$ index.php?usuario=$1
    RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ index.php?usuario=$1&pagina=$2&categoria=$3&id=$4
    RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)$ index.php?usuario=$1&pagina=$2&categoria=$3&id=$4

    Dai ficaria da seguinte forma com a url amigável:

    admin/usuarios/ver/4

    Sendo “admin” o tipo de usuário, “usuarios” diretório que eu estou no momento, “ver” o arquivo php para visualizar um usuário em particular e “4” o ID de um usuário em particular que eu estou vendo…

    Obrigado pelo tutorial, ajudou muito!!!

  6. Caio Martins

    Parabéns ia para você compartilhar seu conhecimento. Mais a minha duvida é a seguinte: estou desenvolvendo um site porém tem a seção de noticias.
    Utilizo o seguinte parâmetro para exibir a noticia:
    http://localhost/cdl/index.php?pg=noticia&noticiaId=9
    Qual procedimento para criar a URL AMIGÁVEL?

  7. Fabio

    Galera, meu xampp não está funcionando isso ai corretamente naum, é como se ele abrisse a index.php a partir de uma pasta ai num carrega o meu CSS e as imgs

    no meu só funciona corretamente com apenas um paramentro:

    RewriteEngine On
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^([^/]*)$ index.php?p=$1

  8. Fabio

    Olha, mesmo assim ele num funciona com mais de um parâmetro
    estou testando online mesmo..
    Agora gostaria de saber como fazer com mais de 3 parametros… pois num funciona nl online.

    testei isso

    RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)$ index.php?pag=$1&categoria=$2&subcat=$3&subsubcat=$4

    mais nada funfa.

  9. Francisco

    Amigo como faço na seguinte situação?

    Tenho:
    http://www.meusite.com.br
    http://www.meusite.com.br/
    http://www.meusite.com.br/index.php

    Quero redirecionar para:
    http://www.meusite.com.br/home/

    Quero fazer isso no httccess, como faço?

  10. Antonio Cesar

    Obrigado, seu tutorial foi muito útil, parabens

    1. roberto mast

      RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)$ index.php?usuario=$1&pagina=$2&categoria=$3

      As três opções

      como eu configuro aqui para poder funcionar as três opções
      o caminho “Usuario” seria uma pasta a onde estaria o arquivo “pagina” e categoria seria os arquivos

      else if($pagina == ‘noticias’){
      $categoria = $_GET[‘categoria’];

      /* Verificar qual é a categoria e incluir a pagina correspondente */
      if($categoria == ‘esportes’)
      include_once(‘noticias_esportes.php’);

  11. roberto mast

    RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)$ index.php?usuario=$1&pagina=$2&categoria=$3&assunto=$4

    As três opções

    como eu configuro aqui para poder funcionar as quatro opções
    o caminho “Usuario” seria uma pasta a onde estaria o arquivo “pagina”. O arquivo página vão ter três arquivos diferentes. Noticias, informações e computador

    e “categoria” seriam três pastas (Noticias, informações e computador)
    e “assunto” seriam os arquivos em cada pasta diferente

    como ficaria a configuração

    else if($pagina == ‘noticias’){
    $categoria = $_GET[‘categoria’];

    /* Verificar qual é a categoria e incluir a pagina correspondente */
    if($categoria == ‘esportes’)
    include_once(‘noticias_esportes.php’);

    Aguardo contato obrigado 🙂

  12. wellington

    Gostei muito da explicaçao, funcionou legal, só que eu tive um problema.
    quando eu abro “meusite.com/fotos” ele funciona certinho, mas eu criei uma pasta chamada “adm”, que faz a postagem de fotos e videos pro site, ai quando eu tento entrar em “meusite.com/adm” ou “meusite.com/adm/index.php”, ele nao encontra e da erro 404.
    procurei bastante no google e nao achei…

    o q faço pra corrigir isso?

    obrigado

  13. Momed Jussub

    Como faco para criar uma pagina assim http://www.meusite.com/contacto

    Diferente do qual voce explicou que ficaria assim:
    sem entrar http://www.meusite.com/index?pag=contacto

  14. Jussub Abdul Rachid

    Gostei, muito bem explicado. GOSTEI

    Continue assim compartilhando o seu conhecimento

    Abraços

  15. Priss Guerrero

    Poxa! Até que enfim encontrei uma explicação clara e objetiva sobre este assunto! Foram 2 meses de muito garimpo! Obrigada por este e pelos tutoriais de CodeIgniter, Rafael! Estão me ajudando bastante, pois quero aprender um Framework e o material sobre outros que encontrei eram muito densos [Zend, Cake etc]. O seu está me ajudando bastante mesmo a entender como funciona e o por quê de algumas sintaxes. Mesmo sendo um post antigo.

    Obrigada mesmo!

  16. Fernando

    Muito top a matéria …

  17. willian

    Parabéns cara, muito valioso este conteúdo.

    Porém estou com uma duvida, qual seria a configuração para passar variaves…

    ex: /login?usuario=joao&senha=12345

Deixar um comentário

motorcycle fairings for sale Wholesale Honda Fairing Kits cheap suzuki fairings cheap ABS Fairings cheap Kawasaki fairings cheap yamaha fairings
cheap trx home cheap trx trainer cheap trx training TRX Suspension Training trx pro4 trx home2 trxhometrainer.com