PHP: cambio de referencia con el encabezado ()

Mi CMS se vincula a otros sitios por conveniencia y me gustaría ocultar el referer para que otros sitios no vean el directorio y la cadena de consulta de mi CMS. Ahora tengo el CMS enlazando a un archivo PHP en otra parte de mi servidor que a su vez redirige al enlace a través del encabezado () pero el referer sigue siendo de mi CMS, no del PHP de enlace. Además…

header("Referer: nowhere"); header("Location: $_REQUEST[urltolinkto]"); 

… no parece cambiar nada. No importa lo que ponga como referencia, siempre es el de mi CMS donde el usuario realmente hizo clic en el enlace.

¿Se puede cambiar el referer (al enlace de PHP), o tengo que usar javascript o meta refresh?

El encabezado Referer es algo que el navegador envía al servidor. Está cambiando la resposición del servidor al navegador, por lo que no funcionará de esta manera (a diferencia del encabezado Cookie). Por lo que sé, no tienes control del comportamiento del navegador al lado del servidor al enviar el Referer.

El navegador puede elegir qué referencia enviar, pero hay formas de evitarlo.

HTML5 agregó meta referencia, la mayoría de los navegadores modernos lo respetarán. Solo agrega

  

a la cabeza de su sitio.

También hay servicios de redirección y otros hacks para ocultar la referencia (https redirects, iframe tricks y otros).