Permitir a los usuarios descargar archivos fuera del webroot

Hola, estoy usando PHP para permitir que los usuarios carguen archivos y los tengo sentados en una carpeta fuera de la carpeta webroot (/ var / www) por razones de seguridad. Está en la carpeta / var / uploads. Un usuario carga archivos para registros específicos. Una vez que los archivos cargados se mueven a la carpeta de cargas, la dirección del archivo adjunto se almacena en la base de datos. Ahora, cuando un usuario verifique el registro, los archivos adjuntos para el registro específico se mostrarán para descargas.

Como están fuera del webroot, no puedo descargarlos porque tendrían una URL de

http: //localhost/var/uploads/attachment.txt

¿Tenemos una solución o las carpetas descargables deben ser directorios secundarios del webroot?

<?php
$con = mysql_connect("localhost","id","pass");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("db", $con);

$result = mysql_query("select * from attachments");

while($row = mysql_fetch_array($result))
{
echo '<a href="'.$row[2].'" target="_blank">Download</a>--'.$row[3].'<br>';
}

mysql_close($con);
?> 

es el código que estoy usando El propietario de la carpeta es www-data: / o el servidor web. Por lo tanto, no debería haber problemas de acceso.