Водяные знаки, которые не зависят от движка.

Водяные знаки (watermarks) — это не хитрый приём, который используют на многих сайтах, чтобы избежать «утечки» картинок. Суть проста — на картинки контент области (публикаций сайта) производят наложение логотипа или надписи с названием сайта и т.п. Разместить такую картинку на другом сайте можно и после этой операции, но, наверное, ясно, что это позволят себе только те, кому на коммерческую сторону вопроса наплевать — т.е. в этот круг ваши конкуренты не попадают. Кроме того, это уже будет дополнительной рекламой вашего сайта.

Движков сейчас очень много. Задача давно решена и везде по-разному, часто зависит от программной архитектуры . Мой подход к этому вопросу, возможно, покажется своеобразным. Давайте напишем надстройку, которая принципиально подойдет к любому движку.

Стартовые условия следующие:

1. Веб-сервер — apache;
2. Сервер умеет выполнять php скрипты;
3. Контент-картинки сгруппированы в какой то одной или нескольких папках (возможно с подпапками);
4. Для php установлена библиотека работы с графикой (иначе можно рассмотреть ещё использование imagemagic)

Идея состоит в следующем. Есть папки, содержащие файлы картинок. Обычно это папки, куда сохраняются картинки при редактировании публикаций CMS данного сайта. К примеру, в wordpress это wp-content/uploads, а в drupal что то вроде sites/default/files. Место зависит конечно же от настроек и движка. Мы будем перехватывать обращения к файлам в таких папках, смотреть, что это за файлы и, если это картинки, будем накладывать на них водяные знаки перед тем как выдать их по текущему запросу.

Для этого в файл .htaccess в папке, где лежат картинки, добавим (или создадим такой файл, если его не было там) примерно такие инструкции:

Это позволяет вместо прямой выдачи файлов, выполнить PHP скрипт (в нашем случае это /watermark/watermark.php). Данный скрипт должен выдать картинку с наложенными на неё водяными знаками. На следующем листинге приведу пример такого скрипта (он вполне рабочий, его также можно взять за основу для вашего случая).

Код довольно короткий, и имеет как плюсы так и недостатки.

На практике, да ещё и при достаточно высокой нагрузке на сервер, стоит добавить кеширование результатов обработки картинок. Я намерено не стал этого делать, чтобы не загружать листинг лишним в нашей теме кодом. Если не заботится об оптимизации, то программу можно использовать и в таком виде.

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

Мало букафф? Читайте есчо !

Apache: переадресация на другой домен

Май 19, 2020 г.

Задача переадресации пользователя с одного домена на другой возникает весьма часто. Разберем как это выглядит в контексте настроек сайта на веб-сервере на базе Apache. Задача состоит в том, чтобы все запросы обращенные к домену site1.ru направить ...

Читать

Установка Lets' encrypt SSL сертификата на Debian

Июль 24, 2017 г.

Если вы решили сэкономить и получить бесплатный SSL сертификат, то в большинстве случаев сделать это не сложно. Благодаря проекту Lets' encrypt процесс получения и настойки автоматизирован и выполняется буквально 2-3 командами в консоли сервера. ...

Читать

Установка Symfony на Denwer и Open Server

Март 8, 2016 г.

Симфония диктует стиль работы, свойственный для работы с ПО под unix системами. Т.е. чтобы что то сделать, вам необходимо сначала понять как это сделать. ...

Читать

Добавление SSL сертификатов для разных сайтов на одном ip

Январь 19, 2018 г.

Давайте рассмотрим порядок действий и настройку SSL сертификата в apache2. В сети довольно много гайдов. Все они примерно следуют одному и тому же алгоритму. ...

Читать
 

Комментарии к «Водяные знаки, которые не зависят от движка.»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Много комментариев в “Водяные знаки, которые не зависят от движка.”

  1. anna:

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

  2. Этот скрипт, как раз позволяет делать такие вещи. В вашем случае можно сделать пару папок — и в одну грузить картинки на сайт, которым нужны WM, а в другую которым они не нужны. В ту папку, где картинки требуют наложения WM, добавить файл .htaccess с указанными инструкциями. Т.е. задача сводится к правильному размещению инструкций для сервера apache.

  3. tatiana:

    А вариантом с кешированием не поделитесь?

  4. У меня нет готового варианта, где добавлено только кеширование результата, есть более сложный вариант, с попутным созданием миниатюр, наложением водяного знака и сохранением картинки (т.е. собственно с созданием кеша). Скрипт использует данные CMS о типах разрешенных миниатюр, и пример будет не универсальным относительно используемой CMS. Едва ли будет полезен Вам.