Pues no, lo que se hace en ese caso es realizar la entrega del archivo manualmente, te dejaré un ejemplo...
Código PHP:
Ver original<?php
//entregas el nombre del archivo o un identificador del mismo para saber que archivo entregar!
$archivo = $_GET['archivo'];
/*
si es un identificador deberás guardar el identificador en una DB o en un archivo
donde especifique a que archivo apunta el identificador, por ejemplo:
ID = 1jh2b3kr3b6jk6b7k6
aarchivo = miarchivo.pdf
*/
//guardas el nombre del archivo en una variable para su uso
$archivo = 'miarchivo.pdf';
//envias las cabeceras correspondientes!
header ("Content-Disposition: attachment; filename=".$archivo" "); header ("Content-Type: application/octet-stream"); filereader($archivo);
Obviamente es código incompleto, porque falta que implementes un sistema (una tabla en la DB por ejemplo) donde generes el ID del archivo y el nombre del archivo en si, ya que no te recomiendo en absoluto que pases nombres de archivo por GET o POST, ya que si no implementas medidas de seguridad puede ser un tremendo agujero de seguridad, ya que podrían usarlo para descargar tus archivos de PHP o cualquier otro archivo alojado en el servidor, así si el identificador no existe en la DB no podrán descargar nada que no este preparado para ello....
Por cierto, este archivo lo debes proteger validando que exista una sesión activa para permitir que solo los usuarios que han iniciado sesión puedan descargar los archivos y no tengan acceso a la URL del archivo real...