Justamente en el codigo que postie no puse la ruta absoluta (error de despiste) el tema de ponerlo en una variable anterior es por comodidad, aunque en alguna version anterior de php si era necesario.
http://ar.php.net/manual/es/function.header.php
"Nota:
HTTP/1.1 require una URI absoluta como argumento para » Location: incluyendo el esquema, nombre del host y ruta absoluta, pero algunos clientes aceptan también URIs relativas. Se puede usar $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] y dirname() para crear una URI absoluta desde una relativa:..."
De hecho también cabe destacar que después del location también es necesario colocar un exit para cortar y que php no procese luego de esa linea.
Saludos!