RewriteEngine On # 1. Define a página de erro 404 personalizada na nova pasta ErrorDocument 404 /public/notfound.php # 2. Protege pastas de sistema, mas permite acesso à pasta public # Bloqueia src, config e vendor RewriteRule ^(src|config|vendor)/ - [F,L] # 3. Regra do Roteador (Front Controller) # Se o arquivo ou diretório solicitado não existir fisicamente... RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # ...E não for a própria página de erro (para evitar loops) RewriteCond %{REQUEST_URI} !^/public/notfound.php # Envia a requisição para o index.php RewriteRule ^(.*)$ index.php [QSA,L]