<
  • Главная
Статьи

Боротьба з крадіжками контенту або водяні знаки (watermark) на всі зображення в блозі WordPress

  1. .htaccess
  2. Watermark.png
  3. Watermark.php
  4. висновок
  5. питання

Деякий час назад, коли я розбирався з падінням блогом (   проблема хостингу була   ), Я переглядав логи веб-сервера і зауважив, що деякі запити йдуть не до WordPress, а безпосередньо до картинок Деякий час назад, коли я розбирався з падінням блогом ( проблема хостингу була ), Я переглядав логи веб-сервера і зауважив, що деякі запити йдуть не до WordPress, а безпосередньо до картинок. Відкрив сторінку джерела запиту, а там повністю скопійована одна з моїх заміток і картинки завантажуються з мого хостингу. Взагалі знахабніли!

Один способів боротьби з таким тупим копіюванням - це водяні знаки (watermarks) на зображеннях в нотатках. Спробував додавати їх вручну, ніякого задоволення і збільшує час на написання нотаток. Потрібно було автоматизоване рішення. Нагугліть відмінний скрипт на PHP, якій автоматично додає watermark всім картинкам. Варіант дуже сподобався, тому вирішив його впровадити ...

На тестовому блозі додав цей скрипт в корінь WordPress, створив простенький watermark.png, відкрив тестовий блог - все відмінно, на всіх зображеннях з'явився мій водяний знак. А головний плюс, що оригінали зображень залишаються без змін, їх можна потім використовувати на інших своїх сайтах / блогах.

Після вдалого тестування почав переносити скрипт на хостинг. Створив новий watermark.png для основного блогу, закачав на хостинг. Начебто все, має працювати. Оновив головну сторінку блогу, але все картинки залишилися без змін, водяний символ не додався до картинок. Дивна ситуація, на локальній версії блогу працює, а на хостингу немає. Мабуть проблема пов'язана з хостингом.

Тех.підтримка хостингу провайдера мене відправила на тематичні форуми з цим питанням. Але гугл не підвів. Проблема полягала в тому, що скрипт PHP прописується в файлі .htaccess веб-сервера Apache. Локальний блог запущений в Denwer, який використовує просто Apache, а на хостингу використовується більш складна схема nginx + apache, де за віддачу картинок відповідає nginx. Тому watermark не додають.

Як реалізувати цей спосіб на nginx + apache я не знайшов і це стало одним з останніх причин переходу на новий хостинг .

І так, про свої муки розповів - переходимо до самого скрипту

.htaccess

Потрібно додати правило в файл .htaccess, який знаходиться в корені WordPress. Додаємо наступні рядки:

# Enable watermark RewriteRule ^ (. *) Wp-content / uploads / (. * (Jpg | jpeg | gif | png)) $ $ 1watermark.php? Img = wp-content / uploads / $ 2

З цього правила випливає, що всі шляхи, що починаються на wp-content / uploads / і закінчуються на jpg, jpeg, gif або png будуть замінюватися на watermark.php? Src = wp-content / uploads /. Якщо змінити шляху (wp-content / uploads /), то можна пристосувати скрипт для іншого CMS.

Watermark.png

Створюємо два файли PNG. Перший - це watermark.png з картинкою водяного знака, яка буде накладатися на зображення. Другий файл - це empty.png, який містить один прозорий піксель. empty.png буде накладатися на зображення маленького розміру.

Watermark.php

Файл Watermark.php теж копіюємо в корінь сайту

<? Php / * * http://did5.ru * / // отримуємо переданий в GET параметр img $ img = $ _GET [ 'img']; // задаємо мінімальний дозвіл, для якого не потрібен великий водяний знак // і на підставі розміру застосовуємо відповідний png-файл // size [0] - ширина, size [1] - висота зображення $ size = getimagesize ($ img); if ($ size [0] <100 || $ size [1] <100) {$ watermark = imagecreatefrompng ( 'empty.png'); } Else {$ watermark = imagecreatefrompng ( 'watermark.png'); } $ Watermark_w = imagesx ($ watermark); $ Watermark_h = imagesy ($ watermark); // обробляємо gif if (eregi ( '. Gif', $ img)) {$ image = imagecreatefromgif ($ img); $ Size = getimagesize ($ img); $ Dest_x = $ size [0] - $ watermark_w - 0; $ Dest_y = $ size [1] - $ watermark_h - 0; imagealphablending ($ watermark, true); header ( 'Content-type: mage / gif'); imagecopymerge ($ image, $ watermark, $ dest_x, $ dest_y, 0, 0, $ watermark_w, $ watermark_h, 50); imagegif ($ image, "", 100); } // обробляємо jpeg elseif (eregi ( '. Jpeg', $ img) || eregi ( '. Jpg', $ img)) {$ image = imagecreatefromjpeg ($ img); $ Size = getimagesize ($ img); $ Dest_x = $ size [0] - $ watermark_w - 0; $ Dest_y = $ size [1] - $ watermark_h - 0; imagealphablending ($ watermark, true); header ( 'content-type: image / jpeg'); imagecopy ($ image, $ watermark, $ dest_x, $ dest_y, 0, 0, $ watermark_w, $ watermark_h); imagejpeg ($ image, "", 100); } // обробляємо png elseif (eregi ( '. Png', $ img)) {$ image = imagecreatefrompng ($ img); $ Size = getimagesize ($ img); $ Dest_x = $ size [0] - $ watermark_w - 0; $ Dest_y = $ size [1] - $ watermark_h - 0; imagesavealpha ($ image, true); imagealphablending ($ watermark, true); header ( 'Content-type: image / png'); imagecopy ($ image, $ watermark, $ dest_x, $ dest_y, 0, 0, $ watermark_w, $ watermark_h); imagepng ($ image); } Else {exit ( "Зображення не має формат jpg, gif або png."); } // звільняємо пам'ять imagedestroy ($ image); imagedestroy ($ watermark); ?>

висновок

Ось такий нехитрий спосіб для додавання водяних знаків на зображення в WordPress. Приклад роботи скрипта в будь-який замітці з картинками в моєму блозі. І для цього не знадобилося встановлювати ніяких плагінів. Сподіваюся, що це хоч якось допоможе від копіювання контенту з блогу без дозволу автора і без посилання на оригінал.

питання

А як Ви боретеся з проблемою крадіжки контенту?

Php?
Php?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью