Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

htaccess запрет на картинки


Gann

Recommended Posts

Доброго утра!

 

Знающие, подскажите, пожалуйста.

Хочу защитить все картинки из папки image/catalog/papka/file.jpg от просмотра по прямым ссылкам. Добавил файл .htaccess в папку image/catalog/papka, в нём указал "Deny from all". 

 

Всё хорошо, картинки больше не открываются по прямым ссылкам.

 

Но! Картинки также не будут открываться и при запросе "из движка". Пока они в кэше - всё хорошо. Вдруг я очищу кэш - движок не сможет пройти в папку image/catalog/papka и взять нужные картинки. Как разрешить движку читать картинки, а всем остальным - нет?

 

Есть выделенный IP адрес. Если я укажу его:

 

Order allow,deny
Deny from all
Allow from <--ip-->

Будет ли движок видеть эти картинки? Или как то по другому нужно это сделать?

Надіслати
Поділитися на інших сайтах

2 часа назад, Gann сказал:

Доброго утра!

 

Знающие, подскажите, пожалуйста.

Хочу защитить все картинки из папки image/catalog/papka/file.jpg от просмотра по прямым ссылкам. Добавил файл .htaccess в папку image/catalog/papka, в нём указал "Deny from all". 

 

Всё хорошо, картинки больше не открываются по прямым ссылкам.

 

Но! Картинки также не будут открываться и при запросе "из движка". Пока они в кэше - всё хорошо. Вдруг я очищу кэш - движок не сможет пройти в папку image/catalog/papka и взять нужные картинки. Как разрешить движку читать картинки, а всем остальным - нет?

 

Есть выделенный IP адрес. Если я укажу его:

 


Order allow,deny
Deny from all
Allow from <--ip-->

Будет ли движок видеть эти картинки? Или как то по другому нужно это сделать?

 

Заглушка ставится на уровне сервера, с помощью настройки файла .htaccess или nginx.conf. Код, который необходимо вставить в .htaccess:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?server\.ru/ [NC]
RewriteCond %{REQUEST_URI} !null\.gif$ [NC]
RewriteRule \.(jpg|jpeg|gif|bmp|png)$ http://i.imgur.com/qX4w7.gif [L]

То же самое для nginx.conf:

location ~* ^.+\.(jpg|jpeg|gif|png)$ {
     root /path/to/root;
     valid_referers none blocked server_names ~\.server1\. ~\.server2\.;
     if ($invalid_referer) {
       rewrite ^ http://i.imgur.com/qX4w7.gif last;
     }
   }

Теперь при каждом обращении к файлу изображения сервер будет проверять с какого сайта пытаются загрузить изображение. Если не с Вашего, то подставляет изображение http://i.imgur.com/qX4w7.gif. Примечание: я понятия не имею как это будет работать с поисковыми системами. Если кто-нибудь объяснит, буду рад и добавлю сюда.

Взято отсюда 

 

Змінено користувачем flai0616
  • +1 1
Надіслати
Поділитися на інших сайтах

1 минуту назад, flai0616 сказал:

 

Заглушка ставится на уровне сервера, с помощью настройки файла .htaccess или nginx.conf. Код, который необходимо вставить в .htaccess:


RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?server\.ru/ [NC]
RewriteCond %{REQUEST_URI} !null\.gif$ [NC]
RewriteRule \.(jpg|jpeg|gif|bmp|png)$ http://i.imgur.com/qX4w7.gif [L]

То же самое для nginx.conf:


location ~* ^.+\.(jpg|jpeg|gif|png)$ {
     root /path/to/root;
     valid_referers none blocked server_names ~\.server1\. ~\.server2\.;
     if ($invalid_referer) {
       rewrite ^ http://i.imgur.com/qX4w7.gif last;
     }
   }

Теперь при каждом обращении к файлу изображения сервер будет проверять с какого сайта пытаются загрузить изображение. Если не с Вашего, то подставляет изображение http://i.imgur.com/qX4w7.gif. Пример работы посмотреть можно здесь. Примечание: я понятия не имею как это будет работать с поисковыми системами. Если кто-нибудь объяснит, буду рад и добавлю сюда.

 

Не то)

 

Открыть в браузере по прямой ссылке изображение - вот это нужно запретить.

Надіслати
Поділитися на інших сайтах

3 минуты назад, Gann сказал:

 

Не то)

 

Открыть в браузере по прямой ссылке изображение - вот это нужно запретить.

Понял) Ну я так понял смысл в защите от копирования? А если схитрить?)

"Если вы пользуетесь редактором Adobe Photoshop, этот способ вам понравится (а если нет – ему легко научиться). Наложение прозрачного слоя несложно осуществить: создается прозрачное изображение одного размера с уникальным изображением и накладывается на его передний план с помощью html или css. Изображение на странице ничем не будет отличаться от обычных, Но, после его сохранения, плагиатчик увидит на компьютере не желаемую добычу, а верхний слой. Easy, как говорится!"

Взято отсюда https://singree.com/blog/9-tips-to-protect-your-images-copyrights/

Надіслати
Поділитися на інших сайтах

2 минуты назад, nikifalex сказал:

срочно идти почитать теорию вебсервера хотя бы на уровне "для чайника".

 

спасибо, обязательно)

 

 

В общем:

1. background-image: url (/image/papka/file.jpg)

2. htaccess c 

Deny from all

в папке /image/papka/

 

3. Как сделать, чтобы показывалось на сайте, но не было доступно по прямой ссылке https://site.ru/image/papka/file.jpg

 

 

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

Надіслати
Поділитися на інших сайтах

Видел такой вариант

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?site.ru [NC]

RewriteRule \.(jpg|JPG|jpeg|png|gif)$ - [NC,F,L]

 

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.