Non proprio, stai facendo un redirect verso un'altra pagina (nel tuo caso il PDF), che è una cosa diversa da fornire il content-type e poi il contenuto del file.. però, appunto, funziona
Prova comunque a riscrivere quel readfile cosi:
e soprattutto assicurati che $path e $_GET['categoria'], quindi il percorso al pdf, siano corretti.. e che il file pdf abbia i permessi di letturacodice:readfile("{$path}/prodotti/pdf/{$_GET['categoria']}.pdf") or die('errore');

Rispondi quotando