Pesquise...

Últimos Posts

Arquivo de Posts

2024 - 2023 - 2022 - 2021 - 2020 - 2019 - 2018 - 2017 - 2016 - 2015 - 2014 - 2013 - 2012

Postagens Populares

Vem Comigo

     
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Tecnologia do Blogger.

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