[PHP] Gerar URLs Amigáveis

A 2 de Fevereiro de 2010, categoria PHP, por Carlos Gonçalves
8

Gerar URLs Amigáveis para os motores de pesquisa, pode melhorar imenso os resultados na pesquisa. Há uma grande diferença entre “/?p=771″ e “/php-gerar-links-amigaveis”.
Ter URLs amigáveis dá também ao utilizador uma ideia do que irá conter a página em que estão a clicar.

Utilizo uma função em PHP para gerar os URLs amigáveis nos projectos dos meus clientes. A ideia é bastante simples. Utilizo o título da página criada pelo utilizador e a partir daí crio o URL passando por alguns passos:

  1. Remover toda a pontuação
  2. Colocar todo o URL em minúsculas
  3. Remover espaços, e colocar um hífen
  4. Remover palavras duplicadas
  5. Remover palavras que não são úteis em SEO

O Código PHP

/* Obtém o input, e desfaz-se dos caracteres indesejados */
function gerar_link_seo($input,$substitui = '-',$remover_palavras = true,$array_palavras = array())
{
	//Colocar em minúsculas, remover a pontuação
	$resultado = trim(ereg_replace(' +',' ',preg_replace('/[^a-zA-Z0-9\s]/','',strtolower($input))));

	//Remover as palavras que não ajudam no SEO
	//Coloco as palavras por defeito no remover_palavras(), assim eu não esse array
	if($remover_palavras) { $resultado = remover_palavras($resultado,$substitui,$array_palavras); }

	//Converte os espaços para o que o utilizador quiser
	//Normalmente um hífen ou um underscore
	return str_replace(' ',$substitui,$resultado);
}
function remover_palavras($input,$substitui,$array_palavras = array(),$palavras_unicas = true)
{
	//Separar todas as palavras baseadas em espaços
	$array_entrada = explode(' ',$input);

	//Criar o array de saída
	$resultado = array();

	//Faz-se um loop às palavras, remove-se as palavras indesejadas e mantém-se as que interessam
	foreach($array_entrada as $palavra)
	{
		if(!in_array($palavra,$array_palavras) && ($palavras_unica ? !in_array($palavra,$resultado) : true))
		{
			$resultado[] = $palavra;
		}
	}

	return implode($substitui,$resultado);
}

Explicação

A função aceita 4 variáveis:

1. $input – string – será o URL Amigável, no meu caso, o título da página
2. $substitui – string – o caractér a substituir, o separador, normalmente um hífen ou um underscore
3. $remover_palavras – boolean – remove palavras específicas, as que não fazem diferença em SEO
4. $array_palavras – array – um array de palavras que deve ser removido do URL porque não ajudam em SEO (exemplo: de, e, o, a, etc…)

Exemplo

$palavras_indesejadas = array('a','um','de','o','é','à','com','pode','da','porque','não');
echo gerar_link_seo('Outro dia a Programar com PHP','-',true,$palavras_indesejadas);
//Resultado :: outro-dia-programar-php

echo gerar_link_seo('MooTools outra vez?  Porque não apenas jQuery?','-',true,$palavras_indesejadas);
//Resultado :: mootools-outra-vez-apenas-jquery

echo gerar_link_seo('Um euro poupado é um euro ganho','-',true,$palavras_indesejadas);
//Resultado :: euro-poupado-ganho

Faz um favor a ti mesmo, torna as tuas páginas dinâmicas mais apelativas a motores de pesquisa com URLs amigáveis.


Muito FracoFracoRazoávelBomMuito Bom (1 votos, média: 5,00 num total de 5)
Loading ... Loading ...
Tags:
 

Dicas para melhorar os URLs das Páginas

A 1 de Fevereiro de 2009, categoria Opiniões, Ideias e Dicas, por Carlos Gonçalves
0

Os URL’s das páginas têm bem mais importância, do que a maioria das pessoas pensam. Ninguém quer “enfrentar maratonas” de URLs e muito menos com querystrings. Hoje, vou tentar dar algumas dicas para melhorar as URL’s.

Dicas

Dicas

Deixar de lado o “WWW

Os quatro mais inúteis caracteres de uma URL são sempre o “www.”.
Se quiseres optar pela maneira mais fácil de encurtar os URLs, retira o WWW. Claro que precisas de configurar o servidor para que ele veja “WWW” e não -WWW da mesma forma. Por diversas vezes, vejo “www.” em anúncios nos jornais – é um desperdício de espaço e dinheiro, pois como provavelmente devem saber, os anúncios nos jornais, são pagos por caracter!

Retira a extensão dos ficheiros

Com ficheiros .htaccess e mod_rewrite, a extensão dos ficheiros nas URL’s passam a ser coisas do passado.
Porquê fazer os utilizadores recordarem-se de “pagina.php” se eles podem simplesmente lembrar-se de “pagina”?

Utiliza SEF Links

Se pretendes ou tens expectativas que muitas pessoas “linkem” a(s) tua(s) página(s), faz-lhes o favor e ao gerar URL’s amigáveis (SEF).
Ninguém se vai lembrar de “cgoncalves.com/post.php=id=3249″.

Não coloques os ficheiros dentro de muitas Directorias

Bem, provavelmente deves de o fazer, por uma questão de organização, mas pelo menos utiliza o mod_rewrite para criar “atalhos” nas URL’s. Ninguém gosta de de “bla bla Slash bla bla Slash .” Slash é para Guns and Roses, não para links amigáveis.

Não sigas a Moda, Usa domínios “Inteligentes” para a Web 2.0


Domínios como “script.aculo.us” e “del.icio.us” inicialmente são memorizáveis, mas agora são enjoativos e difíceis de memorizar. Não obrigues os teus utilizadores a adivinharem o “.” (dot) se coloca!



Alguma sugestão? Partilha-a!


Muito FracoFracoRazoávelBomMuito Bom (1 votos, média: 4,00 num total de 5)
Loading ... Loading ...
Tags:
 

Procuras alguma coisa?

Utiliza o formulário abaixo para pesquisares no meu site:


Ainda não encontraste o que procuravas? Deixa um comentário num post ou contacta-me para que te possa ajudar!

Links de Interesse!

Links por mim recomendados...

Arquivos

Ordenado de forma cronológica...