Задать вопрос

Как прописать маршрут в 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',
Но правило не срабатывает...
Как корректно все прописать, подскажите, никак чет не соображу
Заранее спасибо за подсказки
  • Вопрос задан
  • 649 просмотров
Подписаться 3 Средний Комментировать
Помогут разобраться в теме Все курсы
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • FructCode
    Yii2 Фреймворк
    2 месяца
    Далее
Решения вопроса 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 решить, вроде можно сделать чтоб он спрашивать у какого скрипта можно отдать файл или нет
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы