Ah, claro, agora entendi. Neste caso é heresia fazer isto com mod_rewrite. Para situações como esta você tem a diretiva ErrorDocument para tratar os erros:
ErrorDocument 404 /erro.phpSimples assim. Isso pode vir antes ou depois do código do mod_rewrite, não há problemas.
No PHP (nsete caso, erro.php), é possível obter informações sobre a requisição que falhou. Digamos que tentamos acessar o endereço www.meusite.com.br/nao-existe.php?id=1. Veja só o que podemos obter com isto:<?php var_dump($_SERVER['REDIRECT_STATUS'], // 404 $_SERVER['REDIRECT_REQUEST_METHOD'], // GET $_SERVER['REDIRECT_URL'], // /nao-existe.php $_SERVER['REDIRECT_QUERY_STRING']); // id=1 ?>Interessante, não?
Você nem precisa ter uma página erro.php, você pode usar a própria index.php (por exemplo) para tal, basta verificar pela presença das chavesREDIRECT_*
na requisição.
[]’s
hum, bem interessante, não só meu ajudou com o código, como clareou isso pra mim!
valeu mesmo!!