a me header location funziona benissimo. ho notato però che non funziona se è già partito un output su schermo (errore header already sent)