Как прописать маршрут в YII2 на скачивание файла через авторизацию?

День добрый
Никак не могу придумать как прописать правила в YII2 и htaccess чтобы скачивать файлы через авторизацию
Суть такая, раньше был WP
Ссылки на скачивание были вида (например), работали через авторизацию
https://xxxx.ru/data/uploads/filebase/xxxx.pdf
Сейчас перенесли все на YII2, нужно сохранить все пути и логику
В .htaccess прописываю
RewriteRule ^data/uploads/filebase/(.*)$ index.php
Yii2 получает управление, но никак не может распознать маршрут, что в принципе логично
Редактирование параметров urlManager тоже не особо помогает, не распознается маршрут и все
Т.е например прописываю
'data/uploads/<file_data>' => 'site/test',
Но правило не срабатывает...
Как корректно все прописать, подскажите, никак чет не соображу
Заранее спасибо за подсказки
  • Вопрос задан
  • 644 просмотра
Решения вопроса 1
@IdFox Автор вопроса
В общем решили не городить огород
Благо nginx есть

Сделали в конфиге

location /data/uploads/filebase {
    rewrite ^(.*)$ /site/test/?file=$1 last;
    return 403;
}

location /download {
    internal;
    alias /var/www/www-root/data/www/SITENAME/www/data/uploads/filebase;
}


А выдачу через
header('X-Accel-Redirect: /download/test.txt');
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Arik
Обычно php запускают когда web-сервер не находит файл, так работают обычно роутинг (ЧПУ). Когда стоял wp он просто ссылку давал авторизованным или прям не давал файл гостям?
Чтоб закрыть файл надо или через php раздавать файлы, но нагрузка будет приличная, или переименовывать их все время. Есть еще возможность через nginx решить, вроде можно сделать чтоб он спрашивать у какого скрипта можно отдать файл или нет
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы