Ícone do site Linha de Comando

.htaccess: Como usar negação em RewriteRule com lookahead negativo

Ao trabalhar com URLs amigáveis usando .htaccess, é comum precisar aplicar regras específicas sem afetar outras rotas. Um caso clássico é quando precisamos ignorar determinados padrões dentro de uma RewriteRule — e é aí que entra o uso de negação.

O Problema

Você tem uma estrutura de URLs para cursos EAD e deseja:

Sem tratamento adequado, a regra de detalhes pode capturar URLs que não deveriam ser processadas, causando conflitos.

A Solução

Utilizar negação com lookahead negativo na expressão regular para impedir que determinadas palavras sejam interpretadas pela regra.

### EAD

# lista os cursos do EAD
RewriteRule ^ead\/?$ /cursosead.php [L,NC]

# exibe os detalhes do curso (ignorando /ead/polos)
RewriteRule ^ead\/(?!polos)([A-Za-z0-9-]+)\/([A-Za-z0-9-]+)?$ /cursosead-detalhes.php [L,NC]

Explicação técnica

Com isso:

Conclusão

O uso de negação em regras do .htaccess é essencial para evitar conflitos entre rotas. O lookahead negativo permite criar regras mais precisas e seguras, garantindo que URLs específicas não sejam capturadas indevidamente.

Esse tipo de abordagem é muito útil em projetos com URLs amigáveis e múltiplas rotas dinâmicas.

Sair da versão mobile