Como implementar URLs amigáveis em seu site

Veja como utilizar .htaccess e PHP para implementar URLs amigáveis em seu site.

15/04/2024

Como implementar URLs amigáveis em seu site

Como implementar URLs amigáveis em seu site

Introdução

URLs amigáveis são essenciais para melhorar tanto a usabilidade quanto a eficiência de um site junto aos buscadores.

Neste artigo, demonstraremos como converter uma URL padrão em uma URL amigável utilizando PHP e .htaccess. Abordaremos o processo de configuração e a recuperação de dados, começando com um exemplo comum de problema: a dependência de URLs que utilizam parâmetros numéricos, como pagina.php?id=99.

Entendendo as Limitações das URLs Baseadas em IDs

Um dos problemas mais comuns em desenvolvimento web é o uso de URLs que dependem estritamente de parâmetros numéricos, tais como pagina.php?id=99. Esse tipo de URL é difícil de lembrar e não fornece contexto sobre o conteúdo da página, o que pode prejudicar tanto a experiência do usuário quanto a indexação por motores de busca.

Para resolver isso, podemos utilizar o conceito de "slug", um identificador legível usado na URL que descreve o conteúdo da página, como titulo-url-amigavel. Slugs geralmente são derivados do título da página e são otimizados para SEO, melhorando a visibilidade e acessibilidade do site.

Requisitos técnicos

O código apresentado neste tutorial foi testado em servidores Apache otimizados para PHP com .htaccess. Verifique se sua hospedagem suporta PHP, .htaccess e mod_rewrite antes de prosseguir.

Se seu site está hospedado na MCO2, não se preocupe, todos estes recursos já estão disponíveis no seu plano de hospedagem. Conheça nossos planos de hospedagem.

Configurando o .htaccess para URLs Amigáveis

Para implementar URLs amigáveis em um site que utiliza Apache como servidor web, é essencial configurar corretamente o arquivo .htaccess. Este arquivo permite reescrever URLs, transformando-as de formatos complexos e menos intuitivos para formatos amigáveis e legíveis.

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-]+)/?$ pagina.php?slug=$1 [L,QSA]

Explicação das diretivas:

  • RewriteEngine On - Ativa a reescrita de URL no Apache.
  • RewriteBase / - Define a base da URL para a reescrita. Neste caso, a base é o diretório raiz do site.
  • RewriteCond %{REQUEST_FILENAME} !-f - Aplica a regra apenas se o arquivo solicitado não existir fisicamente no servidor.
  • RewriteCond %{REQUEST_FILENAME} !-d - Aplica a regra apenas se o diretório solicitado não existir.
  • RewriteRule ^([a-zA-Z0-9-]+)/?$ - A regra captura URLs que consistem em letras, números e hifens. O sinal de interrogação indica que a barra final é opcional.
  • [L,QSA] - As flags no final da regra têm funções específicas: 'L' para 'last' (última regra a ser aplicada) e 'QSA' para 'Query String Append' (anexa a query string existente ao final da URL reescrita).

Essa configuração redireciona requisições para pagina.php, passando o slug como parâmetro. Isso torna as URLs não apenas visualmente mais claras, mas também mais amigáveis para SEO e fáceis de indexar pelos motores de busca.

Implementando URLs Amigáveis no PHP

Para acessar os dados de maneira eficiente e segura usando PHP, a utilização de PDO (PHP Data Objects) com parâmetros nomeados é recomendada. Este método ajuda a simplificar o código e a manter a integridade dos dados ao executar consultas ao banco.

É necessário adicionar um campo chamado 'slug' na tabela do banco de dados que contém os dados desejados. Este campo será utilizado para identificar de forma única cada entrada, substituindo o uso de IDs numéricos nas URLs.

$pdo = new PDO('mysql:host=seu_host;dbname=seu_banco', 'seu_usuario', 'sua_senha', [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);

$stmt = $pdo->prepare('SELECT * FROM conteudo WHERE slug = :slug');
$stmt->execute(['slug' => $_GET['slug']]);
$content = $stmt->fetch();

if ($content) {
    echo '<h1>' . htmlspecialchars($content['titulo']) . '</h1>';
    echo '<article>' . htmlspecialchars($content['texto']) . '</article>';
} else {
    header("HTTP/1.0 404 Not Found");
    echo '<h1>Página não encontrada</h1>';
    echo '<p>O conteúdo solicitado não foi encontrado neste site.</p>';
}

Este script PHP configura uma conexão PDO com o banco de dados e prepara uma consulta SQL para buscar conteúdo baseado no slug fornecido. A utilização de parâmetros nomeados na função prepare ajuda a manter o código seguro e organizado, facilitando a manutenção e entendimento.

Automatizando a Criação de Slugs para Títulos de Páginas

Para facilitar a criação de URLs amigáveis, é útil ter uma função que converte automaticamente títulos de páginas em slugs. Esta função pode ser incorporada em sistemas de gerenciamento de conteúdo para automatizar o processo de criação de slugs, garantindo consistência e eficiência.

function criarSlug($titulo) {
    $slug = iconv('UTF-8', 'ASCII//TRANSLIT', $titulo);  // Converte caracteres UTF-8 para ASCII
    $slug = preg_replace('/[^a-zA-Z0-9 -]/', '', $slug); // Remove caracteres especiais
    $slug = strtolower($slug);                           // Converte para minúsculas
    $slug = str_replace(' ', '-', $slug);                // Substitui espaços por hifens
    $slug = preg_replace('/-+/', '-', $slug);            // Substitui múltiplos hifens por um único hifen
    return trim($slug, '-');                             // Remove hifens extras no início e no fim
}

Essa função criarSlug recebe o título de uma página como entrada e retorna uma string formatada como slug. Ela começa convertendo caracteres para ASCII, removendo caracteres especiais, e transformando o título em um formato adequado para URLs. Este slug pode então ser usado nas URLs do seu site para melhorar a legibilidade e o SEO.

Criando Links com URLs Amigáveis

Uma vez que as URLs amigáveis estão configuradas, é importante saber como criar links que utilizem essas novas URLs no seu site. Isso ajuda a garantir que todas as vantagens de SEO e usabilidade sejam aproveitadas. Vejamos como fazer isso usando um exemplo prático.

Suponhamos que você tenha uma página cujo ID tradicional era 99 e o título era "Página de Exemplo". Com a implementação das URLs amigáveis, o slug dessa página seria pagina-de-exemplo. O link para essa página, anteriormente feito por <a href="pagina.php?id=99">Página de Exemplo</a>, deve ser atualizado para:

<a href="/titulo-url-amigavel">Página de Exemplo</a>

Este link não só é mais estético e fácil de lembrar, mas também contém palavras-chave relevantes para os motores de busca. Além disso, ao invés de passar parâmetros visíveis como o id, o link utiliza o slug, que é diretamente mapeado no servidor via .htaccess para buscar os dados correspondentes sem expor a estrutura interna do banco de dados.

Ao adotar este método de linkagem, você melhora a navegabilidade do site e otimiza a indexação das páginas pelos motores de busca.

Práticas Recomendadas para URLs Amigáveis

Para assegurar a eficácia das URLs amigáveis implementadas em seu site, considere seguir estas práticas recomendadas:

  • Mantenha a simplicidade: Use palavras-chave claras e diretas nos slugs para melhorar tanto a compreensão humana quanto a indexação por motores de busca.
  • Consistência é chave: Adote uma estrutura consistente de URLs em todo o seu site para ajudar os usuários a entenderem e navegarem pelo seu conteúdo facilmente.
  • Evite mudanças frequentes: Uma vez que um slug está estabelecido, evite alterá-lo para não perder a relevância de SEO acumulada ao longo do tempo e garantir que os usuários que marcaram a página ainda possam acessá-la.
  • Use redirecionamentos 301 quando necessário: Se precisar mudar um slug, use redirecionamentos 301 para apontar a URL antiga para a nova, preservando assim a autoridade de SEO e garantindo que os visitantes não encontrem erros de 'página não encontrada'.

Implementando estas práticas, você otimiza não apenas a estrutura das URLs, mas também a gestão de conteúdo e a estratégia de SEO do seu site.

Conclusão

Implementar URLs amigáveis é um passo crucial para melhorar tanto a usabilidade do seu site quanto sua performance nos motores de busca. Ao utilizar PHP e .htaccess, juntamente com boas práticas de desenvolvimento e segurança, você pode transformar URLs genéricas e pouco informativas em endereços claros e otimizados para SEO. Isso não apenas facilita a navegação para seus usuários, mas também aumenta a visibilidade do seu site em resultados de pesquisa.

Com as técnicas discutidas neste artigo, desenvolvedores podem configurar e gerenciar URLs amigáveis eficientemente, garantindo uma melhor experiência digital e contribuindo para o sucesso a longo prazo do seu projeto online.

Domínios hospedados
Clientes satisfeitos