Pesquise...

Últimos Posts

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