Laravel - Защита папки с изображениями от веб-доступа

Я делаю функцию загрузки изображений в моем проекте. Здесь я сохраняю свои файлы в общей папке (public/img/myfiles/). Я хочу ограничить доступ к файлу, если администратор не вошел в систему. (Т.е.)

Если я поставлю URL как

https://domain/img/myfiles/filename.jpg

Следует перенаправить на страницу входа

https://domain/login

Как это сделать? и я не хочу ограничивать конкретное изображение для ассоциированного пользователя. Поскольку пользователь является администратором, я хочу предоставить им полный доступ к папке с изображениями.

1 ответ

Решение

Вы можете попробовать поставить строку в вашем .htaccess файл направляет все запросы на изображения через скрипт PHP, который просто перенаправляет на страницу входа, если не admin, в противном случае возвращает запрошенное изображение. Вот идея того, как это может выглядеть.

.htaccess файл:

RewriteRule ^img/myfiles/(\w+)\.([a-z]{3,4})$ image.php?name=$1&type=$2 [L]

image.php файл:

if(Auth::user()->role == 'admin') {
    header("Content-type: image/" + $_SESSION['type']);
    readfile("/path/to/image/" + $_SESSION['name'] + '.' + $_SESSION['type']);
else {
    header("Location: http://mysite.com/login");
}
Другие вопросы по тегам