Pesquise...

Postagens

Arquivo de Posts

2017 - 2016 - 2015 - 2014 - 2013 - 2012

Postagens Populares

Vem Comigo!

         
  •  
  •  
  •  
  •  
  • Tecnologia do Blogger.

    Boletim Informativo?

    * obrigatório

    Total de Acessos

    Saudações,

    Há alguns dias atrás, um amigo meu, me perguntou como ele poderia configurar Links Permanentes no site que ele estava desenvolvendo. Algo parecido com o funcionamento de site como Flickr, Twitter, Facebook, etc.

    Exemplificando, o que ele desejava era algo do tipo:

    www.flickr.com/photos/nome-de-usuario
    www.twitter.com/nome-de-usuario
    www.facebook.com/nome-de-usuario
     
    Na ocasião, ele tinha o seguinte cenário:

    URL:
    www.site-do-amigo.art.br/artistas.php?nickname=fulano

    Contudo ele queria:

    URL PERMANENTE:
    www.site-do-amigo.art.br/artistas/fulano

    Passei para ele uma soluções, a la Wordpress (Using Permalinks), usando o mod_rewrite (mod_rewrite).

    Entretanto eu gostaria de apresentar uma solução alternativa.

    URLs amigáveis sem o mod_rewrite.


    O sistema operacional usado foi o Ubuntu 12.04.
    E os softwares usados foram o Apache 2.2.22 e o PHP 5.3.10.

    Usando o cenário acima como exemplo...

    Crie um arquivo chamado artistas.php na raiz do site.

    #vi artistas.php

    Dentro deste arquivo (artistas.php), adicione o seguinte conteúdo:

    <?php
    
    $recebi = str_replace("/artistas/", "", $_SERVER['REQUEST_URI']); 
    
    $separar = split("/", $recebi);
    
    if ( isset($_GET['nickname']) ) {
            $nickname = $_GET['nickname'];
    } else {
            $nickname = $separar['0'];
    }
    
    if ( $nickname == 'linux' ) {
            echo "Home do GNU Linux";
    } else if ( $nickname == 'mac' ) {
            echo "Home do Mac OS";
    } else if ( $nickname == 'solaris' ) {
            echo "Home do Sun Soloris";
    } else {
            echo "Home do M$ Windows";
    }
    
    exit;
    
    ?>
    

    Salve o arquivo.

    Agora, abra o seu navegador e veja os resultados!

    Quando digitamos:
    http://127.0.0.1/artistas.php
    http://127.0.0.1/artistas
    http://127.0.0.1/artistas/

    RECEBEMOS:
    Home do M$ Windows

    Quando digitamos:
    http://127.0.0.1/artistas.php?nickname=linux
    http://127.0.0.1/artistas/linux
    http://127.0.0.1/artistas/linux/

    RECEBEMOS:
    Home do GNU Linux

    Etc...

    Testes feitos.
    URLs Amigas funcionando.
    Post terminado?


    NÃO!

    Agora você precisa saber como isto é possível sem o mod_rewrite.

    Pois bem...

    Dentro do meu VirtualHost, na diretiva Directory, eu possuo a seguinte linha:

    Options -Indexes FollowSymLinks MultiViews

    Note a opção MultiViews! Ela está ativada.

    Se eu modificasse a linha para:

    Options -Indexes FollowSymLinks -MultiViews

    Reiniciando o Apache... e acessando a pagina outra vez, eu receberia uma bela mensagem 404:

    Not Found

    The requested URL /artistas was not found on this server.


    NOTA IMPORTANTE:
    Creia que a maior responsabilidade é sua. Proteja suas paginas da melhor forma possível.
    Com o MultiViews ativado você facilita, à um possível atacante, a localização e acesso a recursos que deveriam ser ocultos.


    Explicação dada... post terminado!


    Paz a todos!


    0 comentários:

    Postar um comentário