Htaccess e header location
16/02/2012Se applichiamo il mod_rewrite (qui un articolo precedente che trattava l'argomento) per riscrivere le url in modo SEO friendly, noteremo che i redirect scritti in php che puntano su url virtuali smetteranno di funzionare, e visualizzando il log di errori di Apache verificheremo il seguente messaggio (ovviamente i percorsi varieranno da server a server):
[Thu Feb 16 12:27:26 2012] [error] [client xx.xx.xxx.xxx] File does not exist: /var/www/vhosts/dominio.tld/httpdocs/url_virtuale, referer: https://dominio.tld/url_virtuale/directory_virtuale.
Per superare questa problematica sarà sufficiente inserire nel codice php anziché un header location la chiamata di un redirect javascript, in questo modo:
echo '
<script type="text/javascript">
<!--
window.location = "https://www.dominio.tld/url_virtuale"
//-->
</script>';
In questo modo la chiamata al redirect avverrà client side imponendo un nuovo 'passaggio' da htaccess che riscriverà l'url secondo le impostazioni corrette!