mod_rewrite
mod_rewrite WordPress reescreve URLs em tempo real para gerar permalinks bonitos. Veja como funciona, regras comuns e o equivalente no Nginx.
mod_rewrite WordPress é o módulo do servidor Apache que permite reescrever URLs em tempo de execução, transformando endereços técnicos em URLs amigáveis legíveis. Sem ele, todo post WordPress seria acessível só por algo como ?p=123. Com ele, viram /como-instalar-wordpress/. Esse módulo é a base do sistema de permalinks bonitos, peça crítica para SEO e essencial em qualquer site WordPress profissional rodando no Apache.
O que é mod_rewrite
mod_rewrite é um módulo nativo do Apache HTTP Server que processa URLs solicitadas pelo navegador antes de o conteúdo ser entregue. Funciona como um motor de reescrita: a URL entra de um jeito, é avaliada contra regras definidas em arquivos .htaccess ou httpd.conf, e o servidor entrega o recurso correto, mesmo que o caminho real seja outro.
O módulo usa expressões regulares para fazer match nos padrões. Cada regra (RewriteRule) recebe duas partes: um padrão de entrada e o destino interno para onde a requisição é roteada. Flags adicionais controlam comportamento (redirecionar com 301, parar processamento de regras seguintes, retornar 404).
Foi escrito por Ralf S. Engelschall em meados dos anos 1990 e virou parte oficial do Apache 1.2. Ralf chama o módulo de “swiss army knife of URL manipulation”, e o nome pegou. Decadas depois, mod_rewrite continua como uma das peças mais usadas do Apache em produção.
Para WordPress especificamente, mod_rewrite é o que converte estrutura de URL bonita em parâmetros que o WordPress entende internamente. /categoria/marketing/ na URL vira ?cat=marketing dentro do PHP, sem o usuário ver. Tudo via .htaccess gerado automaticamente quando você ativa permalinks.
Como WordPress usa mod_rewrite
Quando você acessa Configurações → Links Permanentes no painel e escolhe um formato como “Nome do Post”, o WordPress grava regras de rewrite no .htaccess da raiz do site. Esse .htaccess é o que ensina o Apache a tratar /minha-pagina/ como /index.php?pagename=minha-pagina internamente.
O bloco padrão do WordPress no .htaccess é simples e poderoso. Direciona qualquer requisição que não corresponda a um arquivo ou diretório real para o index.php. O WordPress recebe a requisição, lê a URL, monta a query principal e renderiza o conteúdo. Se a URL é arquivo físico (uma imagem em /wp-content/uploads/), o servidor serve direto sem passar pelo PHP.
Esse fluxo é o que permite ao WordPress ter URLs bonitas sem cada arquivo PHP existir fisicamente. /sobre/, /blog/, /produtos/camisetas/ são todas processadas pelo mesmo index.php, com o WordPress decidindo o que renderizar. Sem mod_rewrite, todas essas URLs voltariam 404.
Quando você ativa, desativa ou troca permalinks, o WordPress regrava o .htaccess. Em hospedagens onde o arquivo .htaccess não pode ser editado pelo PHP (por permissões), o painel pede para você copiar manualmente o conteúdo. Sem esse passo, permalinks bonitos não funcionam.
Regras comuns de rewrite
Forçar HTTPS é a regra mais comum em produção. Verifica se a requisição chegou via HTTP, se sim, redireciona para a versão HTTPS da mesma URL com status 301. Combinado com .htaccess bem configurado, é o que garante que todo tráfego saia criptografado.
Forçar versão com www ou sem www também é regra de rewrite. Decidir um padrão (canonical) e redirecionar a outra versão evita conteúdo duplicado, problema clássico de SEO. Site disponível em ambas as formas confunde o Google e dilui autoridade.
Bloquear acesso a arquivos sensíveis (wp-config.php, .env, .git) é outra aplicação. Regra simples retorna 403 quando alguém tenta acessar essas URLs diretamente, mesmo se o arquivo estiver na raiz do site. Camada extra de segurança que custa zero em performance.
Redirecionamento 301 de URLs antigas para novas é o caso clássico em migrações. Quando o site muda estrutura de permalinks, regras antigas precisam mandar para as novas para preservar SEO. Combine com plugin de redirecionamento 301 para gerenciar isso pelo painel sem editar .htaccess manualmente.
Bloqueio por IP, bloqueio por user-agent malicioso, hotlinking de imagens, controle de acesso a wp-admin: tudo isso é resolvido com poucas linhas de mod_rewrite. Quem domina o módulo resolve 80% dos problemas de hospedagem sem precisar de plugin.
mod_rewrite vs Nginx try_files
Nginx não usa mod_rewrite. A arquitetura é diferente: regras de rewrite ficam no arquivo de configuração do servidor (geralmente /etc/nginx/sites-available/seu-site), não em arquivos distribuídos pelo filesystem como o .htaccess. A diretiva equivalente principal é try_files, que tenta servir arquivo, depois diretório, depois cai no index.php.
Performance é a vantagem mais alardeada do Nginx. .htaccess é processado a cada requisição em diretórios verificados, o que adiciona overhead em sites com muitas pastas e regras. Configuração centralizada do Nginx é lida uma vez no startup. Em sites de alto tráfego, a diferença aparece nos benchmarks.
O trade-off é flexibilidade operacional. Editar .htaccess não exige acesso root nem reload do servidor. Funciona instantaneamente. Editar configuração Nginx exige acesso a /etc/nginx, comando nginx -t para validar e systemctl reload nginx para aplicar. Para hospedagem compartilhada e times sem dev, Apache vence.
Site WordPress moderno costuma rodar em Nginx com PHP-FPM, que é a stack performática padrão. Hospedagens nacionais e gerenciadas oferecem isso por padrão. Mas Apache + mod_rewrite continua dominando em hospedagem compartilhada barata, então quem mantém sites em vários ambientes precisa entender os dois mundos. Permalink bonito funciona igual nas duas stacks; só os mecanismos por baixo mudam.
Para sites WordPress que precisam de Nginx tunado em produção sem você configurar try_files, fastcgi_cache e regras de segurança a cada deploy, a FULL Services entrega ambientes WordPress com Nginx + PHP-FPM já otimizados dentro dos planos. As regras de rewrite equivalentes às do mod_rewrite vêm pré-configuradas, com cache de página, headers de segurança e bloqueios de proteção ativos no mesmo dia da subida.
Termos relacionados
.htaccess
htaccess WordPress controla URLs, redirects e segurança no Apache. Veja funções essenciais, como editar com…
Permalink
Permalink WordPress define a URL fixa de cada conteúdo. Veja tipos de estrutura, como configurar…
Redirecionamento 301
Redirecionamento 301 WordPress aponta URL antiga para nova preservando SEO. Veja como criar, diferença para…
Nginx
Nginx WordPress entrega alta performance via processamento assíncrono. Veja diferenças para Apache, configuração com PHP-FPM…














