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");
}