Originariamente inviato da fcaldera
Grazie GM, però mi sembra strano che l'htaccess non intervenga in questo caso...
non interviene perché ha già finito.

Ad apache arriva una richiesta, la filtra con htaccess, lo script esiste? in questo caso sì, il tuo script php, gli passa il controllo e ha finito. Gli header il tuo script li invia al browser che ha fatto la richiesta, mica ad apache, quindi ovviamente è necessario anche un location se vuoi fare un redirect, ma potresti anche includere il contenuto della pagina 404 direttamente nello script senza bisogno di ulteriori redirect.

Se invece il browser richiede una pagina che l'htaccess non risolve su nessuno script, allora Apache genera un 404 e lo processa con la SUA direttiva.