🎉 USE O CUPOM FIM.DE.SEMANA.FULL | com 15% OFF

mod_rewrite

mod_rewrite WordPress reescreve URLs em tempo real para gerar permalinks bonitos. Veja como funciona, regras comuns e o equivalente no Nginx.

Avançado 5 min de leitura Também conhecido como: apache rewrite, url rewriting

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

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes