Si el archivo estuviera en otra carpeta, podrías usar "Basic Authentication" para proteger los archivos de dicha carpeta.
Si no, vas a tener que interponer un poco de programación entre el usuario y el archivo real.
Es decir, no apuntar hacia el archivo sino hacia un programa php que compruebe si el usuario tiene los permisos necesarios y solo en caso de que los tenga le devuelva el contenido del archivo.
Para esto podés usar una petición tipo
archivos.php?archivo=tuarchivo.zip
o usar mod_rewrite para redirigir hacia tu script las peticiones que apunten al archivo zip.
En cualquiera de los dos casos, la estructura de tu programa debería ser:
Código:
if (usuario tiene permisos)
header ("archivo zip")
echo file_get_contents(tu archivo zip)
else
redirigir a error
Por más detalles, solo preguntá
Saludos.