Trabalhando URL Amigável com PHP

Nessa vídeo Aula aprenderemos a como criar uma URL Amigável utilizando o PHP. A Url Amigável ajudar o usuário a se localizar melhor, e melhorar o posicionamento em site de buscas. Espero que gostem, e boa aula.




Se o conteúdo foi relevante para você, e desejar, você pode incentivar fazendo uma doação.

40 thoughts on “Trabalhando URL Amigável com PHP

  1. David,

    como faço pra executar toda essa vídeo-aula, mas de forma online?

    Teria que acessar o .htaccess do site de hospédagem e colocar aqueles códigos que você passou?

    Mais alguma coisa?

    Desde já, lhe agradeço

  2. Prezado,

    Tudo bem?
    Nessa questão de URL amigável gostaria de esclarecer uma dúvida.
    Como criar uma URL amigável do tipo http://www.ctasoftware.com.br/titulo-da-minha-noticia ?

    Vários blogs e forum ensinam a seguinte maneira http://www.ctasoftware.com.br/noticia/1234, ou seja, notícia e id notícia, dessa maneira fica bastante estranho, acredito que a melhor maneira seja http://www.ctasoftware.com.br/titulo-da-minha-noticia alguma vez você já realizou isso? Teria algum script ou dica de como fazer?

    Obrigado.

    1. Everton, na verdade é da mesma maneira, a única diferença é que vai gravar uma parte da URL no banco de dados. Exemplo:

      http://www.seusite.com.br/titulo-da-noticia

      titulo-da-noticia => grava no banco de dados.

      Então vc vai capturar essa parte da url, da mesma maneira q fizemos na vídeo aula, e irá realizar uma pesquisa no banco de dados, como ele fosse um ID. Um detalhe, é importante vc garantir q essa url seja unica, pra não dá problema

      1. e como diferenciar ela de ser uma pagina e de uma pesquisa.
        por exemplo:
        seusite.com.br/contato, buscará a pagina contato
        e seusite.com.br/titulo-da-noticia
        buscará como pagina?
        Aproveitando..;
        se eu tiver um site com varias pastas,
        www/-> home | produtos | contato,etc
        www/blog-> inicio | postagem/12/12/2012
        www/adm->
        www/forum->
        como deve ser o código php pra chamar as páginas?

  3. Bom dia, David!

    Primeiramente muito boa a video aula, consegui fazer tudo certinho como vc
    mostrou. Só teve um pequeno problema q eu acho q vc com o seu vasto conhecimento
    pode me ajudar. srsr

    é o seguindo eu tenho uma pasta chamada “design” onde nela tem outras pastas
    seguindo o modelo abaixo?

    design->default->

    ai dentro de default eu tenho as seguintes pastas:

    ->css
    ->img
    ->js
    ->paginashtml

    bom quando eu estou na index.php meu codigo fonte seria esse

    HOME

    veja q eu chamo os arquivos da pasta design no cabeçalho, mais se eu entrar
    com a segiunte url ex:
    http://localhost/meusite/produtos/
    por exemplo eu teria q ter o seguinte codigo fonte:

    HOME

    vc sabe por q isso está acontecendo e se isso é para acontecer?

  4. Olá como eu faço para colocar url amigável em estados tipo assim.
    http://www.meusite.com/São paulo, ou seja a pessoa seleciona o estado em html e ele prínta o resultado certo.
    Tenho que criar um banco de dados só de estado?

    Agradeço se puder me ajudar.

    1. Não entendi muito bem a duvida, vc quer uma forma de ao selecionar um item do select, ele enviar em formato de URL amigável, seria isso ?

  5. Tipo assim ..

    selecione o estado:

    RJ – SP – PR Ao selecionar a url ficaria assim.

    http://www.meusite.com/Rio de janeiro

    Gostaria de sabrer como fazer isso funcionar já tentei de todo o jeito e não funciona.
    Criei uma tabela só de estado e não da certo.

    1. Primeira coisa é enviar essa informação já formatada, pq no formulário ele vai enviar tipo query string, então vc precisa trabalhar com javascript pra formatar o valor, exemplo:

      jQuery("#estados").change(function(){
         var estado = jQuery(this).val();
         window.location = 'seusite.com.br/'.estado;
         return false;
      });
      

      Lembrando q o valor pela URL tem q está formatado tbm, no caso as palavras sem espaços

      Depois de passar a informação, precisamos agora analisar com trabalhar com esse valor.

      Na videoaula informo que o primeiro parametro seria o arquivo, mas aqui temos uma exceção. Então o q vc pode fazer ?

      Retornaria todos esses nome dos banco, ou manualmente, vai depender de vc, e colocaria no array, e faria uma condição: Se o primeiro parâmetro da URL for igual aos nomes q do estado, inclui um arquivo exclusivo. Exemplo

      $cidade = array('rio-de-janeiro', 'sao-paulo');
      
      $atual = explode('/', $_GET['pg']);
      
      if(in_array($atual[0], $cidade)){
        $page = 'cidades';
        $_GET['cidade'] = $atual[0];
      }else{
      
        /*Continua a logica*/
      }
      

      Veja q faço a verificação e defino nome do arquivo q será incluido. Mas vc viu q crie uma variavel superglobal $_GET[‘cidade’],e atribui o nome do parametro a era, mas pq ? Se vc estiver trabalhando no banco de dados, e quiser realizar uma pesquisa pra buscar os dados da cidade passada para URL, assim fica mais facil pra vc recuperar em qualquer página

    1. Marlon, vc pode tentar fazer algo assim:

      RewriteEngine on
      RewriteCond %{HTTP_HOST} !^www\.
      RewriteCond %{HTTP_HOST} ^(.*)\.seusite\.com\.br
      RewriteRule ./index.php?var=%1 [L]
      
    1. No caso vc quer, se tiver com .html ou não, redirecione da mesma maneira. TEnte fazer assim:

      RewriteRule ^(.*)\.html?$ index.php?pg=$1

  6. Olá David. Sua vídeo aula foi a melhor de todas as que eu vi na internet sobre essa questão de url’s amigáveis.
    Mas estou com um problema: No meu projeto eu tenho um menu de opções, quando eu clico por exemplo em noticias(localhost/projeto/noticias), é listada todas as noticias cadastradas tudo certinho. Mas quando clico em uma das noticias(localhost/projeto/postt/14), onde post=pagina que será incluida, e 14=id da noticia. Quando clico no link o site parce que duplica e carrega duas vezes um por cima do outro e a noticia não é exibida. Isso ocorre com todos os ‘sublinks’ do site! Espero que tenha me entendido! Aguado uma salvação!

    1. É precisa que elementos externos, como imagens , css, javascript sejam chamados utilizando a URL Completa, assim evita esse problema.

    1. Os arquivos externos, como imagem, css, preciso ser chamados utilizando URL Completa, assim evita esse problema.

  7. David , tudo bom?

    Tentei contato com você via e-mail mas sem sucesso.

    David eu estou querendo que você faça um sistema para mim. está disponível?

    Abraços!

    1. Desculpa Juan, tive uns problemas com meu email. Não to podendo pegar freela atualmente, q tenho já projetos em andamento. abrs

  8. Olá, tudo bem? Eu não estou conseguindo fazer! O arquivo htacces precisa ficar na raiz? Ele precisa de permissão? Eu uso o hoteldaweb como servidor. Pode me mandar esses exemplos do video?

    At,

    Ivan

    1. Ivan, nem tenho mais esses arquivos. O .htaccess precisa está na pasta raiz do site. E não precisa de permissão. Verifique se hoteldaweb é necessário algo para habilitar o htaccess.

  9. Boa tarde David,
    Não entendo, eu tento fazer de tudo mas não consigo obter êxito, creio que seja algo simples, por exemplo, eu tenho uma index e nela fica a ‘estrutura’ simples do site com a variavel topico:
    Tudo bem, tenho uma página ‘single.php’ que exibe as noticias dinamicas com o seguinte link:
    http://localhost/arconservice/index.php?topicos=nav/single&topico=29

    Neste caso, qual o caminho a seguir no htaccess e no php?
    Sinto que é bem possível alterar isso, mas esta um nó na cabeça.
    Aguardo sua resposta.
    Abraço.

  10. Olá David,

    Primeiramente, muito obrigado pela vídeo aula, me ajudou muito!
    O sistema de url amigável funciona perfeitamente quanto ao back-end, mas tenho um “bug” com o front. Depois de estruturar a index via css, fui fazer as outras páginas, porém a index carrega “junto” com essas páginas, minha index fica abaixo do conteúdo da página de noticias por exemplo…
    Não achei nada relacionado à isso, você sabe o que poderia ser?

    Grato.

  11. Boa tarde cara poderia dar uma ajuda?
    Após assistir a VA fiz tudo certinho, funcionou que foi uma beleza. O único problema é que tenho alguns links referentes as redes sociais que deveriam abrir em uma nova aba, mas está dando erro, não abre.
    Estou colocando o lin assim: http://www.facebook.com/
    Mas está abrindo assim: http://localhost/facebook.com/

    Teria como dar uma ajuda?
    Desde já obrigado pela atenção.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *