Apache 2.4 — Как перенаправить изображения в файл php?

Мне нужно перенаправить все изображения в php-файл, включая путь и имя файла.

Представьте, что мой домен — example.com
Я мог бы иметь https://example.com/art/logo.png и хочу сделать перенаправить это на https://example.com/scripts/image_loader.php?a:art&б = logo.png

Итак, я бы принудительно перенаправил любой запрос в php-файл, который будет отображать изображение. Я делаю это, чтобы контролировать, кто может получить доступ к изображениям, а также для предотвращения хотлинкинга.
Я также хочу, чтобы html-файлы использовали это перенаправление и использовали файл php для отображения изображения, например, для включенного ‘img src = / art / logo.png’

Я уже сделал mod_rewrite, используя метод заголовка реферала, но он не работает, и я не уверен, почему. Я предполагаю, что протокол https не использует реферер в заголовке.

Для php мне нужно знать, как я могу помешать кому-то хотлинкингу моих изображений и просто загрузить их в виде файлов.
Могу ли я определить, является ли пользователь человеком, ботом или каким-то другим риппером сайта?

Я знаю, что не могу остановить человека от загрузки изображений. Я просто хочу, чтобы им было сложнее. Таким образом, они не могут просто загрузить их или использовать программное обеспечение для копирования сайта.

Любые предложения будут великолепны. Мой сайт использует или работает по HTTPS. Многие решения для хотлинкинга в Интернете показывают только примеры использования http.

0

Решение

1. Можете ли вы определить, является ли запрос от пользователя или бота?

NYeah, более или менее ^^ Вы можете использовать поле UserAgent-Header, чтобы определить, был ли запрос отправлен через браузер или нет. Но тогда возникает вопрос: хотите ли вы занести в черный список все программы-риперы сайтов (например, HTTrack) или внести в белый список все распространенные браузеры? Оба будут неполным и довольно длинным списком.

2. Как переписать все изображения в ваш php-файл

RewriteEngine On
RedirectRule ^/(.+/(.+\.(jpe?g|gif|png|tif|bmp))$ /scripts/image_loader.php?a:$1&b=$2

Это переписывает все запросы на стандартные изображения, если вызываемый URI-шаблон следует вашему указанному «/path/image.png» в /scripts/image_loader.php?a:path&б = image.png

Обновить

RedirectRule ^^/(.+/)+(.+\.(jpe?g|gif|png|tif|bmp))$ /scripts/image_loader.php?a:$1&b=$2

Первая скобка (.+) включает часть после имени сервера до последнего имени файла, поэтому в примере /path/example/image.png это будет содержать path/example, Вторая скобка (.+) включает в себя только имя файла, поэтому в примере /path/example/image.png это будет содержать image.png, Теперь оба значения назначены целевому URL ->

/scripts/image_loader.php?a:path/example&b=image.png

Надеюсь, я правильно понял ваш вопрос …

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]