Jump to content


SuperEly

Member Since 17/04/2005
Offline Last Active Private
-----

Topics I've Started

Migrando Para Urls Amigáveis

09/02/2006, 23:31

Este artigo se destina a fornecer o conhecimento necessário para implementação de uma técnica capaz de melhorar o posicionamento de seu site nas ferramentas de buscas por meio do uso de urls amigáveis aos buscadores. O objetivo não é fornecer um script pronto para ser colocado em cada site, mas sim dar uma idéia clara de como isso pode ser feito.

Vejam o exemplo de uma url comum:

www.site.com/materia.php?id=125

Por meio dessa url o webmaster pode identificar facilmente que deve exibir nesta página a matéria de número 125, mas o problema é a dificuldade que os buscadores têm para indexá-la. Digo isso por experiência própria com este fato já notório na comunidade. Uma página que depende de argumentos não é indexada facilmente e, no geral, não alcança posições tão boas quanto poderia nos resultados das buscas.

A solução é migrar deste formato para um otimizado para buscadores. Existem diversos meios de se alcançar o mesmo resultado, mas vou ensinar aqui a técnica que oferece mais controle. Seu site precisa estar em um servidor web Apache (o mais comum) para utilizá-la.

Para não fazer um artigo gigante vou apenas exemplificar o processo de migração em um site fictício de exemplo. Vamos lá!

Sabemos que é preciso passar aquele número, 125, para sabermos qual matéria exibir. Então nós vamos deixar funcional a seguinte url, em substituição àquela:

www.site.com/materia/125/peixes_africanos

Essa url se reveste de duas vantagens: não passa argumentos da forma tão repudiada pelos buscadores e pode trazer o título da página na url. Este segundo elemento é apenas um adicional benéfico, mas não imprescindível. Se uma das palavras da busca for encontrada na url, seu site ganhará muitas posições.

Agora chega de introdução e vamos ao método em sí!

Você vai encontrar no diretório principal do seu site, seja o "public_html" ou "www" (o local onde estão suas páginas) um arquivo chamado ".htaccess". É isso mesmo, ele não tem nome, apenas extensão. Se não existir, crie este arquivo. Nele você deve escrever o seguinte:

RewriteEngine on
RewriteRule !\.(gif|jpg|png|css)$ controle.php
São apenas duas linhas. Se o arquivo já existir e houver alguma coisa nele, adicione estas linhas logo no início.

A primeira linha habilita o uso do "mod_rewrite" no seu site. A segunda direcionada todo o tráfego (com exceção de arquivos gif, jpg, png e css) para uma determinada página, neste exemplo, "controle.php".

Agora, se você digitar no navegador algo como:

www.site.com
www.site.com/nada
www.site.com/texto/semsentido

Tudo isso vai cair em "controle.php". Esta se tornou sua página mais importante e é ela quem vai tratar e direcionar todo o tráfego dentro do seu site, mas vamos fazer com que tudo isso aconteça apenas nos bastidores. O que faremos é usar a url digitada como se fosse uma string e extrair dela o que for útil. Veremos como escrever em "controle.php" um bom código de tratamento para podermos usar as tão almejadas urls amigáveis!

Nosso site exemplo tem matérias e notícias, e nós vamos utilizar ambos. As urls vão seguir o seguinte padrão:

www.site.com/materia/125/peixes_africanos

www.site.com/noticia/523/oceano_secou

Nós vamos aproveitar dessas urls apenas a seção (materia ou noticia) e a id (125 e 523, no caso). O resto (peixes_africanos e oceano_secou) está lá apenas para ajudar nas buscas e não será de serventia para o processo. Siga o modelo:

<?php

// Capturamos a url digitada
$url_site = $_SERVER['REQUEST_URI'];

// Convertemos em array quebrando a string nos pontos certos
$urln = explode("?", $_SERVER['REQUEST_URI']);
$urlt = explode("/", $urln[0]);

// Para manter a compatibilidade com as urls antigas, vamos
// verificar existência do arquivo solicitado propriamente dito
if(is_file($urlt[1])){
  include($urlt[1]);
  exit();
}

// Ja vimos que nao e um arquivo existente, entao prosseguimos
// tratando a url digitada em forma de array
$url=strip_tags($_SERVER['REQUEST_URI']);
$url_array = explode("/", $url);

// Excluimos o primeiro elemento, que sempre será vazio
array_shift($url_array);

// Se a array ficou vazia, mandamos ver no index.php
if(empty($url_array) or $url_array[0] == ""){
  include("index.php");
  exit();
}

// Se restou algo nela, vamos carregar o arquivo correto.
// Adaptacoes possivelmente so precisarao ser feitas nesta
// parte do código
else {

  // Materia
  if ($url_array[0] == "materia") {
    // capturamos a id passada na url
    $id = $url_array[1];
    // carregamos o arquivo real
    include("materia.php");
  }
    
  // Noticia
  elseif ($url_array[0] == "noticia") {
    // capturamos a id passada na url
    $id = $url_array[1];
    // carregamos o arquivo real
    include("noticia.php");
  }

  // Se nao for nenhuma das opcoes acima, carregamos a index mesmo
  else {
    include("index.php");
  }

  exit();
}

?>

Tá bom, o código está comentado mas merece alguma explicação. Apenas para ressaltar, se alguém estiver voando na leitura, isso é o que vai em "controle.php".

No início do código nós verificamos se existia o arquivo procurado na url, e neste caso carregamos ele. Isso para manter a compatibilidade com as urls que você já possui indexadas nos buscadores.

Passada esta fase, quebramos a url pelas barras ("/") existente e criamos um array que se parece com o seguinte:

www.site.com/materia/125/peixes_africanos
$url_array[0] = "materia"
$url_array[1] = "125"
$url_array[2] = "peixes_africanos"

Entretanto, só nos interessaram os dois primeiros elementos. Com eles carregamos o arquivo apropriado com base na leitura da url, no exemplo, "materia.php" ou "noticia.php", ambos existentes em nosso site fictício. No que se refere ao argumento, ou seja, a "id" da matéria ou notícia que vamos apresentar, perceba que colocamos esse dado na variável "$id". Bastará fazer a leitura dela onde for necessário.

Agora vamos saber o que muda no arquivo real que chamamos a partir do controle, ou seja "materia.php", "noticia.php" ou qualquer outro:

1) Perceba que você pode utilizar "$_GET['id']" apenas para manter a compatibilidade, porque se for uma requisição pela nova url, nós vamos pegar esse dado da variável chamada "$id". Então você vai verificar se existe algo em "$_GET['id']" e se não houver, fará o mesmo com a variável "$id", pois o argumento estará em um dos dois.

2) A segunda e última mudança diz respeito ao formato dos links para arquivos ou exibição de imagens. Nossas novas urls utilizam algumas barras, e isso indica mudança de diretório. Logo, precisamos voltar sempre à rais com uma "/" antes dos links. Observe os exemplos:

De: <a href="index.php">
Para: <a href="/index.php">

De: <img src="imagens/seta.gif">
Para: <img src="/imagens/seta.gif">


O método em sí está pronto! A intenção deste artigo não é fornecer um script milagroso que possa ser copiado e colado em qualquer site, pois isso seria utopia. O que forneço aqui é o conhecimento necessário para que cada faça a implementação da melhor forma.

Para conseguir esta última parte da url, por exemplo, basta fazer um tratamento da string trocando espaços por "_" e substituindo também a acentuação e os caracteres especiais.

www.site.com/noticia/523/oceano_secou

Use a criatividade. Você pode também criar urls assim:

www.site.com/noticia/523/oceano_secou.html

www.site.com/noticia/523/oceano_secou/oceano_secou.html

Isso porque as ferramentas de busca atribuem um peso diferente para as palavras encontradas na url em diretórios ou arquivos, e essa parte da url não será útil para o script mesmo.

Você deve trocar todos os links do seu site pelo novo formato para que surta efeito, e se quiser manter algum diretório sem o controle de url basta desativar o mod_rewrite criando nele um arquivo ".htaccess" com o seguinte conteúdo:

RewriteEngine off

Em caso de dúvidas ou dicas de melhorias sintam-se livres para postar neste tópico, o qual será aperfeiçoado ao longo do tempo com o surgimento de vantagens a serem acrescentadas no texto.

Flw!

Detectar Acesso De Robôs

17/01/2006, 10:17

Para meu contador de acessos funcionar de forma descente eu desconsidero aqueles provenientes de robôs. Com isso, criei uma lista na qual estou sempre adicionando novos robôs que vejo no meu log de acesso. A lista atual é a seguinte:
  • InternetSeer.com
  • Googlebot/2.1 (+http://www.google.com/bot.html)
  • Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
  • msnbot/1.0 (+http://search.msn.com/msnbot.htm)
  • Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.co.../ysearch/slurp)
  • Mediapartners-Google/2.1"
  • ia_archiver"
  • ConveraCrawler/0.9d (+http://www.authoritativeweb.com/crawl)
  • Gaisbot/3.0+(robot05@gais.cs.ccu.edu.tw;+http://gais.cs.ccu.edu.tw/robot.php)
  • appie 1.1 (www.walhello.com)
  • ConveraCrawler/0.9 (+http://www.authoritativeweb.com/crawl)
  • NG/2.0
  • noxtrumbot/1.0 (crawler@noxtrum.com)
  • Mozilla/4.0 compatible ZyBorg/1.0 Dead Link Checker (wn.dlc@looksmart.net; http://www.WISEnutbot.com)
  • Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; MSIECrawler)
  • OmniExplorer_Bot/1.07 (+http://www.omni-explorer.com) Internet Categorizer
  • IRLbot/1.0 (+http://irl.cs.tamu.edu/crawler)
  • Mozilla/4.0 compatible ZyBorg/1.0 (wn-14.zyborg@looksmart.net; http://www.WISEnutbot.com)
  • ConveraCrawler/0.8 (+http://www.authoritativeweb.com/crawl)
  • SurveyBot/2.3 (Whois Source)
  • NutchCVS/0.06-dev (Nutch; http://www.nutch.org/docs/en/bot.html; nutch-agent@lists.sourceforge.net)
  • Oracle Ultra Search
  • Baiduspider+(+http://www.baidu.com/search/spider.htm)
    VJakarta Commons-HttpClient/3.0-rc1
  • psbot/0.1 (+http://www.picsearch.com/bot.html)
  • Mozilla/2.0 (compatible; Ask Jeeves/Teoma; +http://sp.ask.com/docs/about/tech_crawling.html)
  • Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; Girafabot; girafabot at girafa dot com; http://www.girafa.com)
  • Gigabot/2.0
  • Ipselonbot/0.46-beta (Ipselon; http://www.ipselon.c...pselonbot.html; ipselonbot@ipselon.com)
  • OmniExplorer_Bot/4.32 (+http://www.omni-explorer.com) WorldIndexer
  • msnbot/0.9 (+http://search.msn.com/msnbot.htm)
  • tumba!-viuva negra/0.3.8 (http://www.tumba.pt/crawler.html)
  • Mozilla/4.5 (compatible; HTTrack 3.0x; Windows 98)
  • Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MSIECrawler)
  • StackRambler/2.0 (MSIE incompatible)
  • Gigabot/2.0/gigablast.com/spider.html
  • OmniExplorer_Bot/5.64 (+http://www.omni-explorer.com)
  • EmeraldShield.com WebBot (http://www.emeraldsh...com/webbot.aspx)
Assim obtenho resultados muito semelhantes aos do Google Analytics, mas podendo fazer controles e estatísticas internas.

Chato é ficar olhando os logs quase todos os dias para encontrar os robôs que aparecem de vez em quando.

Minha dúvida é, o que vocês fazem para controlar os acessos de robôs em suas estatísticas?

Google Analytics

16/11/2005, 08:38

Vocês já conhecem a nova ferramenta de monitoramento de websites do Google?

https://www.google.c...login?hl=pt-BR

Estou fazendo um teste aqui mas parece que ainda não está funcionando muito bem. Apesar de inserir o código conforme as intruções, sempre recebo a mensagem que "o código de monitoramento do Google Analytics não foi detectado na página inicial do site. Para que o Analytics funcione, o administrador da Web ou você deve adicionar o código a cada página do site."

Alguém ai já conseguiu testar?

Yrhost - Alguém Conhece?

10/11/2005, 18:42

Estou pensando em conseguir uma revenda mais estável que a minha atual, apenas para meus sites que existem e que estão por vir, e encontrei esse pessoal aqui, na gringolândia:

http://www.yrhost.com/resellers.php

Parece que usam servidores da Liquid Web.

Alguém tem algum conhecimento a respeito desse pessoal, e sabe se vale a pena testar? Se não, vai alguma dica? Estou pretendendo reverter meus ganhos da web com uma estrutura um pouco melhor, mas não estou afim de encarar nada muito dispendioso, ao menos por enquanto.

Programa De Afiliados Cotacota

10/09/2005, 13:09

Ainda insatisfeito com o sistema de cliques premium do Buscapé, cá estou eu novamente em busca de um programa de parceria que traga melhores resultados.

O CotaCota paga R$ 0,02 por clique único e mais R$ 0,05 caso este clique se torne Gold. Clique Gold é aquele em que o visitante acessa um produto de qualquer loja.

Fazendo uma rápida comparação com o Buscapé:

- Clique único:
Buscapé: R$ 0,00
CotaCota: R$ 0,02

- Clique premium/gold:
Buscapé: R$ 0,10
CotaCota: R$ 0,07

Então, para saber se haverá alguma vantagem com o CotaCota é preciso avaliar a proporção de cliques normais e cliques premium. No último mês, por exemplo, obtive 1 clique premium para cada 2,5 cliques normais, em média. Traduzindo isso em números exemplificativos:

- 250 cliques normais / 100 cliques prêmium:
Buscapé: R$ 10,00
CotaCota: R$ 12,00

- 1000 cliques normais / 400 cliques prêmium:
Buscapé: R$ 40,00
CotaCota: R$ 48,00

Em meses com aproveitamento de cliques inferior (1/3) a diferença foi ainda maior, mas a média é essa.

Como alguns programas de afiliados por ai não têm correspondido às expectativas dos usuários, gostaria de saber se algum de vocês já utilizou o CotaCota e tem alguma referência do mesmo.

IPB Skin By Virteq