Отдавать файлы скриптом - до безобразия ресурсоемко. Поэтому применимо только в тех случаях, когда нужно обеспечить крайне высокий уровень безопасности, и/или файлы малы, и/или пользователей мало.
Более популярное решение - создание и обслуживание ссылок на файлы. Здесь речь идет о ссылках unix, которые создаются командой ln. Тема эта достаточно объемна, и не вижу смысла излагать ее в рамках сообщения форума. Но, если вы познакомитесь с основами linux и базовыми "приемами" веб-программирования - освоить ее будет несложно. Как вариант - гуглите, материалов масса.