Как запретить доступ по прямой ссылке к файлам на хостинге для неавторизованых пользователей?
Сделать это можно, только пустив обработку таких ссылок на php файл, который будет проверять авторизацию и выносить решение пускать или нет.
А вот, как потом файл отдавать клиенту, если он авторизован это отдельная история, и для ответа на нее нужна дополнительная информация.
У Вас есть доступ к настройкам сервера?,
Есть модуль на apache xsendfile или возможность его установить?
Стоит ли nginx или есть возможность поставить?
Если на все вопросы нет, значит нужно отдавать файл средствами PHP, что не очень эффективно, но тоже норм :)
Если отдавать файлы самим php например то можно.