Iniciante Fundamentos
Reescrita de URL com mod_rewrite
O mod_rewrite reescreve URLs com base em regras e expressões regulares. É usado para URLs amigáveis, redirecionamentos e roteamento de aplicações.
Ativar o módulo
sudo a2enmod rewrite
sudo systemctl restart apache2
Ligar o motor
Antes de qualquer regra, ligue o motor de reescrita:
RewriteEngine On
RewriteRule
Uma regra tem um padrão e um destino:
# /produto/42 vira /produto.php?id=42
RewriteRule ^produto/([0-9]+)$ produto.php?id=$1 [L]
^...$: o padrão da URL (regex).$1: captura do primeiro grupo( ).[L]: para de processar regras se esta casar.
RewriteCond
Adiciona uma condição antes da regra. Exemplo clássico: enviar tudo para o index.php, exceto arquivos que existem:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
!-f: o arquivo não existe.!-d: a pasta não existe.
Onde colocar
Use dentro de <Directory>, do virtual host ou em .htaccess (com AllowOverride All). Verifique com:
sudo apache2ctl configtest
sudo systemctl reload apache2