Запрет на JavaScript-хотлинкинг с помощью .htaccess


Содержание материала:

Защита от хотлинка в htaccess

Для защиты от хотлинков нам понадобится приписать нижеследующие строки в файле .htaccess на своем сервере. Таким способом защитимся от хотлинка и средиректим хотлинкующих нас куда-нибудь на файл 1.html

Эти цифры — 4.78.23.246 — IP вашего сайта. Т.е. на сайт можно попасть тремя способами: набрав yazov.com, набрав www.yazov.com и набрав, если так удобней , в браузере http://4.78.23.246 (специально хана пинговал, блять, для реалистичности картины)

В файлике 1.html можно написать что угодно — повесить консоли, дайлер, ну и просто по-человечески послать хотлинкующих вас на фиг.

Чтобы предотвратить хотлинк со всех сторонних доменов, и показать им только одну картинку (такая необходимость может возникнуть) напишите в .htaccess следующее:

Файл nohotlink.jpg, лежащий в папке images/ и будет там самая единственная картинка, которую мы покажем.

Чтобы защитится от хотлинка только от некоторых определенных доменов пропишите в .htaccess следующее:

Будет возникать ошибочка 403 forbidden. Советую кстати заранее позаботится об обработке ошибок. Пишем в .htaccess следующее

Защита от хотлинка

Хотлинк — включение в веб-страницу файлов-изображений или других ресурсов с чужого сервера.

Как узнать, использует ли кто Ваше изображение?

Используйте следующий запрос в поиске картинок Google:

Защита от хотлинка с помощью файла .htaccess

Чтобы предотвратить хотлинк со всех сторонних доменов, и показать им только одну картинку (такая необходимость может возникнуть) напишите в .htaccess следующее:

Файл nohotlink.jpg, лежащий в папке images/ и будет та самая единственная картинка, которую мы покажем. К примеру она может быть такой:

Чтобы защитится от хотлинка только от некоторых определенных доменов пропишите в .htaccess следующее:

Защита от хотлинка из панели администратора

Перейдите в меню слева — ХОСТИНГ -> Сайты, в списке сайтов вы увидите свой сайт, возле которого в колонке Hotlink ProtectДа.

Успешно, теперь ваш сайт защищен от Hotlink.

Hotlink (хотлинк) защита – что это такое и способы защиты от хотлинкинга

Хотлинк (анг. Hotlink) – это процесс внедрения в веб-страницу изоброжений или других файлов с помощью стороннего сервера. Простыми словами, хотлинкинг это воровство контента (фото, видео, аудио) с чужого сайта. Особенность хотлинкинга заключается в том, что файлы не скачиваются с удаленного сервера, а отображаются непосредственно с чужого сайта. Таким образом, злоумышленник (который ворует контент) не тратит место и трафик своего хостинга, а пользуется ресурсами чужого сайта.

Зачем нужна защита от хотлинкинга?

В первую очередь защита от хотлинкинга нужна для того, чтобы обеспечить стабильную работу своего сервера. Если Вы ведете популярный сайт, например который ежедневно выкладывает уникальный фотоматериал и данный материал методом хотлинка транслируется на сторонние сайты – то фактически, ваш сервер обслуживает сразу несколько сайтов! (это и потребление трафика, дополнительная нагрузка на Apache и физический износ жесткого диска). Нагрузка на сервере заметно увеличится, если ваши картинки будут подгружать десятки сайтов с посещаемостью в несколько тысяч человек в сутки. Согласитесь, не приятно, когда сайты-паразиты не только воруют ваш контент, но и используют мощности сервера за которые платите только вы?!

Способы защиты от хотлинков (hotlink)

Самый быстрый и простой способ защиты от хотлинкинга находится непосредственно в нашей панели управления хостинга CPanel.

Авторизуйтесь под своим логином и паролем в нашей CPanel, затем на вкладке “Безопасность” перейдите в меню – “Защита Hotlink”.

Вы можете просто активировать стандартную защиту от хотлинков, или внести индивидуальные настройки – добавить исключения для некоторых сайтов (разрешить им хотлинкинг) а также прописать форматы файлов от которых будет активирована защита.

Защита от hotlink через файл .htaccess

Защитить свой сайт от хотлинков можно и самостоятельно. Для этого достаточно прописать простую команду в ваш .htaccess файл:

RewriteCond % !^$
RewriteCond % !^http://mysaite.com/.*$ [NC]
RewriteCond % !^http://mysaite.com$ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ http://provisov.net [R,NC]

Ссылку “mysaite.com” нужно изменить на свой URL. В случае если условие не выполняется (будет происходить попытка хотлинкинга) то пользователь будет перенаправлен на сайт provisov.net.

Для поисковых систем можно сделать правило исключение:

Вопрос по .htaccess, mod-rewrite, hotlinking &#8211 Разрешить / запретить хотлинкинг изображений с помощью .htaccess

Так что я’У меня это есть в файле моего сайта .htaccess для предотвращения хотлинкинга изображений, JS и CSS со всех других доменов.

Вопрос: Как я могу выборочно разрешить один или два домена хотлинк?

Refererr не является ничем, и referer не соответствует mydomain, а referer не соответствует другому домену.

Если бы вы пытались сделать обратное (занести в черный список набор доменов из хотлинкинга), вы ‘сделать что-то вроде

Просто добавьте еще одно условие перед RewriteRule для каждого домена, который вы хотите разрешить.

(по-видимому, вы нене волнует, если запрос через http или https или что-то еще, так что вы можете пропустить это, чтобы сделать его более общим)

Запрет на JavaScript-хотлинкинг с помощью .htaccess

Итак. Что такое хотлинк.
Представьте себе ситуацию: хитрожопый владелец другого сайта не хочет платить лишние баксы своему хостеру и желает сэкономить деньги на бендвиче. Он в буквальном смысле привязывается к одному или нескольким изображениям или мультимедийным файлам (видео, музыка, етц ) и помещает их на свою страницу. Грубо говоря, хитрожопый овнер использует ваш контент на своем сайте, загружая его со своего. По сути дела хотлинк является кражей интеллектуальной собственности (пафосно звучит ), причем вы еще оплачиваете трафик другого сайта.

Как защитится от таких хитрожопых владельцев? Допустим ваш сайт www.thehun.net (уже нехуево )

Пропишите нижеследующие строки в файле .htaccess на своем сервере. Таким способом защитимся от хотлинка и средиректим хотлинкующих нас куда-нибудь нахер на файл nahui.html

Код:
RewriteCond % !^$
RewriteCond % !^http://thehun.net.*$ [NC]
RewriteCond % !^http://www.thehun.net.*$ [NC]
RewriteCond % !^http://thehun.net:80.*$ [NC]
RewriteCond % !^http://www.thehun.net:80.*$ [NC]
RewriteCond % !^http://4.78.23.246.*$ [NC]
RewriteCond % !^http://4.78.23.246:80.*$ [NC]
RewriteRule .*[Jj][Pp][Gg]$|.*[Gg][Ii][Ff]$ http://www.thehun.net/nahui.html

Эти цифры — 4.78.23.246 — IP вашего сайта. Т.е. на сайт можно попасть тремя способами: набрав thehun.net, набрав www.thehun.net и набрав, если так удобней , в браузере http://4.78.23.246 (специально хана пинговал, блять, для реалистичности картины)

В файлике nahui.html можно написать что угодно — повесить консоли, дайлер, ну и просто по-человечески послать хотлинкующих вас нахуй.

Чтобы предотвратить хотлинк со всех сторонних доменов, и показать им только одну картинку (такая необходимость может возникнуть) напишите в .htaccess следующее:

Код:
RewriteEngine On
RewriteCond % !^http://(www\.)?thehun.net\.com/ [NC
RewriteCond % !^$
RewriteRule \.(jpe?g|gif|bmp|png)$ images/nohotlink.jpg [L]

Файл nohotlink.jpg, лежащий в папке images/ и будет там самая единственная картинка, которую мы покажем.

Чтобы защитится от хотлинка только от некоторых определенных доменов пропишите в .htaccess следующее:

Код:
RewriteEngine On
RewriteCond % ^http://(www\.)?badsite\.net/ [NC,OR
RewriteCond % ^http://(www\.)?badsite\.com/ [NC
RewriteRule \.(jpe?g|gif|bmp|png)$ — [F]

Будет возникать ошибочка 403 forbidden. Советую кстати заранее позаботится об обработке ошибок. Пишем в .htaccess следующее

Код:
ErrorDocument 404 http://www.thehun.net/nahui.html
ErrorDocument 403 http://www.thehun.net/nahui.html
ErrorDocument 500 http://www.thehun.net/nahui.html

Это перенаправит все запросы к вашим картинкам на “consolehell.html”, за исключением тех, которые пришли с *yourdomain.com. Чтобы проверить эту установку вы можете пойти на Hotlinking.com и ввести урл картинки, которая теперь у вас под htaccess. Если картинки не увидите, значит все в порядке.
А вот так можно перенаправить все запросы к картинкам на http://www.thehun.net/nahui.html, за исключение только тех, которые идут с вашего собственного домена thehun.net

Код:
RewriteEngine on
RewriteCond % !^http(s)?://([a-z0-9-]+.)*yourdomain.com(:80)?(/.*)? [NC]
RewriteRule .*[Jj][Pp][Gg]$|.*[Gg][Ii][Ff]$ http://www.thehun.net/nahui.html [L,R]

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

(с) No

Rabbit
Кролики — это не только ценный мех
Зарегистрирован: 01.08.2005
Сообщений: 19787

Обратиться по нику

Rabbit Ответить с цитатой
# Добавлено:Пт Фев 03, 2006 11:34 pm Ответить с цитатой
No , спасибо, нужная вещь — эта защита.
Новое. Прибыльное. Скоро!
kapon
Banned
Зарегистрирован: 31.12.2005
Сообщений: 1989

Обратиться по нику

kapon Ответить с цитатой
# Добавлено:Сб Фев 04, 2006 3:12 am Ответить с цитатой
полезная вешчь )
Andrej
Свой
Зарегистрирован: 05.07.2006
Сообщений: 3

Обратиться по нику

Andrej Ответить с цитатой
# Добавлено:Ср Июл 05, 2006 7:35 pm Ответить с цитатой
No писал(а):
А вот так можно перенаправить все запросы к картинкам на http://www.thehun.net/nahui.html, за исключение только тех, которые идут с вашего собственного домена thehun.net

Код:
RewriteEngine on
RewriteCond % !^http(s)?://([a-z0-9-]+.)*yourdomain.com(:80)?(/.*)? [NC]
RewriteRule .*[Jj][Pp][Gg]$|.*[Gg][Ii][Ff]$ http://www.thehun.net/nahui.html [L,R]


А как можно перенаправить все запросы к видео (mpg,mpeg,wmv)?

No
я здесь ельцин
Зарегистрирован: 01.08.2005
Сообщений: 3746

Обратиться по нику

No Ответить с цитатой
# Добавлено:Чт Июл 13, 2006 2:43 am Ответить с цитатой
Цитата:
А как можно перенаправить все запросы к видео (mpg,mpeg,wmv)?
Код:
RewriteRule \.(jpe?g|gif|bmp|png)$ — [F]

вместо картинок (расширения jpg, gif и т.д.), пропиши расширения требуемых видео файлов

Germes
V.I.P.
Зарегистрирован: 13.07.2006
Сообщений: 3054

Обратиться по нику

Germes Ответить с цитатой
# Добавлено:Чт Июл 13, 2006 11:26 pm Ответить с цитатой
А вот примочка для ленивых хттп://www.htaccesstools.com/hotlink-protection/. Есть кроме этого еще кое-какие полезные фишки.
3а нас наука. Анархия, батенька, не игрушка.
-Почему у тебя синяк под глазом? -А пусть не лезут.
Mr.UFO
Профессионал
Зарегистрирован: 13.08.2006
Сообщений: 513

Обратиться по нику

Mr.UFO Ответить с цитатой
# Добавлено:Вс Сен 10, 2006 11:45 pm Ответить с цитатой
А если я сам тащу с других сайтов картинки, непохерит ли такая хитрая конструкция их?
Всем пока 🙂
Germes
V.I.P.
Зарегистрирован: 13.07.2006
Сообщений: 3054

Обратиться по нику

Germes Ответить с цитатой
# Добавлено:Пн Сен 11, 2006 12:06 am Ответить с цитатой
Если ты тащишь со своих ресурсов, то их можно прописать, и сможешь тащить как и прежде. Если с чужих то сам понимаешь.
3а нас наука. Анархия, батенька, не игрушка.
-Почему у тебя синяк под глазом? -А пусть не лезут.
CountZero
Профессионал
Зарегистрирован: 04.01.2006
Сообщений: 541

Обратиться по нику

CountZero Ответить с цитатой
# Добавлено:Пн Сен 11, 2006 12:08 am Ответить с цитатой
похерит, если неправильно тащишь.
Профессиональная покерная школа
Andrej
Свой
Зарегистрирован: 05.07.2006
Сообщений: 3

Обратиться по нику

Andrej Ответить с цитатой
# Добавлено:Пн Сен 11, 2006 1:09 am Ответить с цитатой
Мой совет всем новичкам. с проблемами антихотлинка и .htaccess лучше обращаться к админу сервера. потому что любая ошибка может убить сайт, особенно если это сидж.

У меня так и произошло, прописал в .htaccess антихотлинк (htaccesstools.com) .. потом начал сидж раскручивать, дошёл до 45к . и сервер завис — оперативной памяти не хватило.

Germes
V.I.P.
Зарегистрирован: 13.07.2006
Сообщений: 3054

Обратиться по нику

Germes Ответить с цитатой
# Добавлено:Пн Сен 11, 2006 2:12 am Ответить с цитатой
чегож ты там такого прописал то?
3а нас наука. Анархия, батенька, не игрушка.
-Почему у тебя синяк под глазом? -А пусть не лезут.
Andrej
Свой
Зарегистрирован: 05.07.2006
Сообщений: 3

Обратиться по нику

Andrej Ответить с цитатой
# Добавлено:Пн Сен 11, 2006 3:12 am Ответить с цитатой
Примерно вот так:

Цитата:
ErrorDocument 401 http://www.domain.net/
ErrorDocument 403 http://www.domain.net/
ErrorDocument 404 http://www.domain.net/
ErrorDocument 500 http://www.domain.net/
Options -Indexes
AddHandler server-parsed .html
RewriteEngine on
RewriteCond % !^$
RewriteCond % !^http(s)?://(www\.)?domain.com [NC]
RewriteCond % !^http(s)?://(www\.)?domain.net [NC]
RewriteCond % !^http(s)?://(www\.)?domain.us [NC]
RewriteCond % !^http(s)?://(www\.)?domain.us [NC]
RewriteCond % !^http(s)?://(www\.)?domain.net [NC]
RewriteCond % !^http(s)?://(www\.)?domain.net [NC]
RewriteCond % !^http(s)?://(www\.)?domain.biz [NC]
RewriteCond % !^http(s)?://(www\.)?domain.net [NC]
RewriteCond % !^http(s)?://(www\.)?domain.com [NC]
RewriteCond % !^http(s)?://(www\.)?domain.com [NC]
RewriteCond % !^http(s)?://(www\.)?domain.us [NC]
RewriteCond % !^http(s)?://(www\.)?domain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|mpeg|mpg|wmv)$ — [NC,F,L]

В моем случае виноват сапорт который вместо того чтоб отключить мне htaccess и решить проблему, начал мне предлогать добавить 4гб памяти .

Allow/deny image hotlinking with .htaccess

So I’ve got this in my site .htaccess file to prevent hotlinking of images, JS and CSS from all other domains.

Question: How would I selectively allow one or two domains to hotlink?

2 Answers 2

Will work, as this says.

«Refererr is not nothing, and referer is not matching mydomain and referer is not matching otherdomain.

If it were the case that you were trying to do the opposite (blacklist a set of domains from hotlinking) you’d do something like

Just add another condition before the RewriteRule for each domain you want to allow.

(presumably you don’t care if the request is via http or https or whatever, so you can leave that out to make it more generic)

Not the answer you’re looking for? Browse other questions tagged .htaccess mod-rewrite hotlinking or ask your own question.

Linked

Related

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2020 Stack Exchange Inc; user contributions licensed under cc by-sa 4.0 with attribution required. rev 2020.11.7.35374

Как Включить Защиту от Хотлинкинга

Введение

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

Что такое хотлинкинг

Хотлинкинг (произошел от английского слова Hotlink – горячее подключение) – это размещение какого-либо изображения на сайте не находящемся на сервере данного сайта. Обычно подобного рода изображения размещаются при помощи похожего HTML кода:

Внутри атрибута src и располагается ссылка на изображение на другом сервере.

Чем так плох хотлинкинг

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

Что вам понадобится

Перед тем, как вы начнете это руководство, вам понадобится следующее:

  • Доступ к панели управления вашим хостингом

Вариант 1 — Включение защиты от Хотлинкинга в панели управления Hostinger

Включение защиты от Хотлинкинга на Hostinger довольно простой процесс и не займет много времени.

  1. Для начала зайдите в панель управления Hostinger и найдите Защита от Хотлинкинга в разделе Другое.
  1. В окне включения защиты заполните необходимые данные.

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

Блокировать прямой доступ к этим типам файлов – выберите какой тип файлов будет блокироваться для показа на чужом сайте. Обычно рекомендуется выбирать Все типы файлов, однако, мы выберем Изображения для избежания возможных конфликтов с плагинами.

Прямые запросы – по умолчанию прямые запросы к вашим изображениям посредством браузера блокируются, однако, вы можете включить данную опцию для отмены блокировки.

Перенаправлять блокированные запросы на эту ссылку – введите сюда ссылку для перенаправления пользователей на определенную страницу вашего сайта.

Смените Статус защиты от Хотлинкинга на Enabled (Включен) и нажмите кнопку Сохранить для сохранения изменений.

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

Вариант 2 — Включение защиты от Хотлинкинга в cPanel

  1. Для начала войдите в cPanel вашего хостинга и найдите иконку Защита Hotlink в разделе Безопасность.
  1. В окне настройки Защиты Hotlink заполните все необходимые данные.

URL-адреса для доступа – по умолчанию данная опция уже содержит список ваших доменов. Перед включением защиты от хотлинкинга убедитесь в правильности приведенных данных, чтобы избежать блокировку показа изображений для вашего собственного сайта.

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

Разрешить прямые запросы – по умолчанию прямые запросы к вашим изображениям посредством браузера блокируются, однако, вы можете включить данную опцию для отмены блокировки.

Перенаправление запроса на следующий URL-адрес – введите сюда ссылку для перенаправления пользователей после блокировки показа изображения на определенную страницу вашего сайта.

После того, как все данные заполнены, нажмите на кнопку Включить под надписью Защита Hotlink сейчас “отключена”.

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


Вариант 3 — Ручное включение защиты от Хотлинкинга на сервере Apache

Для ручного включения защиты от Хотлинкинга нам понадобится отредактировать файл .htaccess. Для этого подключитесь к серверу с помощью FTP-клиента и откройте файл .htaccess с помощью текстового редактора.

Добавьте следующий код в файл .htaccess вашего сервера:

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

Вы также можете добавить код ниже для отключения блокировки для конкретного изображения, например изображения с рекламой вашего сайта:

Вместо реклама.jpg введите название нужной вам картинки.

Заключение

Несмотря на то что Хотлинкинг не всегда является серьезной проблемой, никогда не помешает включить данную защиту хотя бы для ваших изображений. В данном руководстве вы узнали, как включить защиту от хотлинкинга на Hostinger и хостинге на базе cPanel. Также вы познакомились с понятием Хотлинкинг и его влиянием на расход ресурсов вашего сервера.

19 полезных возможностей файла .htaccess

Спорим, о некоторых вы не подозревали. Мы собрали варианты применения .htaccess для улучшения работы сайта. Он часто используется оптимизаторами для корректной настройки 301 редиректов. Но этим возможности файла не ограничиваются. Тут и безопасность, и оптимизация, и параметры отображения — с помощью .htaccess вебмастер может сделать много полезного, чтобы сайт работал корректно.

Файл .htaccess (сокращение от «hypertext access») переопределяет настройки самого популярного типа веб-серверов Apache и его аналогов. Ниже — способы применения .htaccess для разных целей с примерами кода.

Зачем нужен .htaccess и где его искать

Файл нужен для более гибкой настройки сервера под задачи оптимизатора. Задавать правила в .htaccess не стоит, если у вас есть доступ к главному конфигурационному файлу сервера .httpd.conf или apache.conf (название зависит от настроек операционной системы). Изменения в нем вступают в силу быстрее, запросы не перегружают сервер. Однако очень часто такого доступа нет, например, в случае с виртуальным хостингом. Тогда приходится прописывать нужные настройки через .htaccess.

Возможности .htaccess для оптимизации сайта:

  • Настройка редиректов для SEO.
  • Обеспечение безопасности ресурса в целом и отдельных разделов.
  • Настройка корректного отображения сайта.
  • Оптимизация скорости загрузки.

Где искать и как редактировать

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

.htaccess — общепринятое и самое популярное название, но не обязательное (оно задается в файле httpd.conf). Несмотря на непривычное название, создавать и редактировать файл можно в любом текстовом редакторе.

Некоторые CMS дают возможность редактировать файл через административную панель. В Битриксе его легко можно найти в разделе Контент — Файлы и папки:

В WordPress редактировать .htaccess можно с помощью модулей плагинов Yoast SEO и All in One SEO Pack.

Если файл .htaccess отсутствует, создайте его в текстовом редакторе и разместите в корневой папке сайта или в нужном каталоге (потребуется доступ к хостингу или по ftp).

Синтаксис .htaccess

Синтаксис файла простой: каждая директива (команда) начинается с новой строки, после знака # можно добавлять комментарии, которые не будут учитываться сервером. Изменения на сайте вступают в силу сразу, перезагрузка сервера не требуется.

Правила задаются в том числе при помощи регулярных выражений. Для того, чтобы их прочитать, нужно понимать значение спецсимволов и переменных. Расшифруем самые часто используемые.

Основные спецсимволы:

Основные переменные:

Для тех, кто хочет основательно погрузиться в тему, — полная официальная документация по использованию .htaccess или хороший ресурс на русском. А мы пройдемся по основным возможностям файла для оптимизации вашего сайта.

Настраиваем редиректы для SEO

Как мы уже упоминали, это самый популярный способ использования .htaccess. Перед тем, как настраивать тот или иной вид переадресации, убедитесь, что это действительно необходимо. Например, редирект на страницы со слешем в некоторых CMS настроен по умолчанию. О настройках редиректа для SEO мы писали в блоге.

При настройке 301 редиректов помните о двух правилах:

1. Настраиваем постраничные 301 редиректы

Это потребуется в следующих случаях:

  • изменилась структура сайта и у страницы поменялся уровень вложенности;
  • страница перестала существовать, но нужно сохранить ее входящий трафик (например, в случае отсутствия товара обычно делают переадресацию на товарную категорию);
  • поменялся URL, что крайне нежелательно, но тоже встречается.

Просто удалить страницу — плохая идея, лучше не отдавать роботу ошибку 404, а перенаправить его на другой URL. В этом случае есть шанс не потерять позиции сайта в выдаче и целевой трафик. Настроить 301 редирект с одной страницы на другую можно при помощи директивы простого перенаправления:

  • /page1/ — адрес страницы от корня, без протокола и домена. Например, /catalog/ofisnaya-mebel/kompjuternye-stoly/ .
  • https://mysite.com/page2/ — полный адрес страницы перенаправления, включая протокол и домен. Например, https://dom-mebeli.com/ofisnaya-mebel/stoly-v-ofis/ .

2. Избавляемся от дублей

Каждая страница сайта должна быть доступна только по одному адресу. Для этого должны быть настроены:

  • редирект на страницы со слешем в конце URL или наоборот;
  • главное зеркало — основной адрес сайта в поиске.

Сделать это можно при помощи модуля mod_rewrite . В его составе используются специальные команды — директивы сложного перенаправления. Первой командой всегда идет включение преобразования URL:

Переадресация на слеш или наоборот

Настроить ли переадресацию на страницы со слешем или без, в каждом случае нужно решать индивидуально. Если у сайта уже накоплена история в поиске, анализируйте, каких страниц в индексе больше. Для новых сайтов обычно настраивают редирект на слеш. Проверить, не настроена ли переадресация по умолчанию, просто: удалите/добавьте слеш в конце URL. Если страница перезагрузится с новым адресом — мы имеем дубли, требуется настройка. Если URL подменяется — все в порядке. Проверять лучше несколько уровней вложенности.

Код 301 редиректа на слеш:

Код 301 редиректа на страницы без слеша:

3. Настраиваем главное зеркало

Для начала нужно определиться, какой адрес будет являться основным для поиска. SSL-сертификат давно уже мастхэв. Просто установите его и добавьте правило в .htaccess. Не забудьте также прописать его в robots.txt.

Редирект на HTTPS

Определять, с «www» или без будет главное зеркало, можно несколькими способами:

  • добавить сайт в Яндекс.Вебмастер в двух вариантах, в консоли отобразится информация, какой URL поисковик считает главным зеркалом;
  • проанализировать выдачу и посмотреть, каких страниц сайта больше в индексе;
  • для нового ресурса не имеет значения, с «www» или без будет адрес, выбор за вами.

После того как выбор сделан, воспользуйтесь одним из двух вариантов кода.

Редирект с www на без www

Редирект с без www на www

4. Перенаправляем с одного домена на другой

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


Воспользуйтесь одним из вариантов кода:

или

Не забудьте поменять в коде «mysite1» и «mysite2» на старый и новый домен соответственно.

Модуль SEO в системе Promopult: для тех, кто не хочет тонуть в рутине. Все инструменты для улучшения качества сайта и поискового продвижения, автоматизация процессов, чек-листы, подробные отчеты.

Обеспечиваем безопасность сайта

Файл .htaccess предоставляет большие возможности для защиты сайта от вредоносных скриптов, кражи контента, DOS-атак. Также можно защитить доступ к определенным файлам и разделам.

5. Запрещаем загрузку картинок с вашего сайта

Существуют технологии, при которых сторонние сайты используют контент, в том числе изображения, загружая его прямо с вашего хостинга путем хотлинков (прямых ссылок на файлы). Это не только обидно и нарушает авторские права, но и создает ненужную дополнительную нагрузку на ваш сервер.

Осадите воришек при помощи этого кода:

Заменяете «mysite.com» на адрес вашего сайта и создаете изображение с любым сообщением о том, что красть чужие картинки нехорошо, по адресу https://mysite.com/img/goaway.gif . Это изображение и будет показано на стороннем ресурсе.

6. Запрещаем доступ

Целым группам нежелательных гостей с определенных IP-адресов, подсетей, а также вредоносным ботам можно запретить доступ на ваш ресурс при помощи следующих директив в .htaccess.

Для нежелательных User Agents (ботов)

Список юзер-агентов можно дополнять, сокращать или создать свой. Перечень хороших и плохих ботов можно посмотреть здесь.

Частный случай такого запрета — запрет для поисковых роботов. Если вас почему-то не устраивает правило в robots.txt, можно запретить доступ, например, роботу Google при помощи таких директив:

Для всех, кроме указанных IP

Не забываем заменить «https://mysite.com» на адрес вашего сайта и вписать IP-адреса вместо IP1, IP2 и т.д.

Для определенных IP-адресов

Для подсети

Вписываем маску сети в строку после «deny from».

Спамные IP-адреса можно вычислить в логах сервера или с помощью сервисов статистики. В административной панели WordPress отображаются IP-адреса комментаторов:

К определенному файлу

Вписываем название файла вместо «myfile.html» в примере. Пользователю будет показана ошибка 403 — «доступ запрещен».

Не лишним будет ограничить доступ к самому файлу .htaccess из соображений безопасности, а также рекомендуем после настройки всех правил поставить на файл права доступа 444.

Для сайтов на WordPress важно ограничить доступ к файлу wp-config.php, т.к. в нем содержится информация о базе данных:

Для пользователей, пришедших с определенного сайта

Вы можете заблокировать посетителей с нежелательных ресурсов (например, со взрослым или шокирующим контентом).

7. Защищаем доступ к определенному файлу или папке

Для начала создайте файл .htpasswd, пропишите в нем логины и пароли в формате user:password и разместите в корне сайта. В целях безопасности пароли лучше зашифровать. Это можно сделать при помощи специальных сервисов генерации записей, например, такого. Следующим шагом добавьте директории или файлы в .htaccess:

Защита паролем файла

Защита паролем папки

Вместо «/pub/home/.htpasswd» укажите путь до файла .htpasswd от корня сервера. Рекомендуем проверить доступ после установки кода.

8. Запрещаем выполнение вредоносных скриптов

Следующая группа директив защищает сайт от так называемых «скриптовых инъекций» — инструмента хакерских атак:

Все попытки причинить вред вашему ресурсу будут перенаправлены на страницу ошибки 403 «доступ запрещен».

9. Защищаем сайт от DOS-атак

Один из способов защиты — ограничить максимально допустимый размер запроса (ограничение отсутствует по умолчанию).

Для этого прописываем в .htaccess размер загружаемых файлов в байтах:

В примере указан размер 10 Мбайт. Если вы хотите запретить загрузку файлов, пропишите число меньше 1 Мбайт (1048576 байт).

Также можно изучить возможности директив LimitRequestFields, LimitRequestFieldSize и LimitRequestLine в официальной документации.

Настраиваем отображение сайта

Посмотрим, что можно сделать с отображением всего ресурса или его разделов в браузерах пользователей при помощи .htaccess.

10. Заменяем индексный файл

Индексный файл — тот, что открывается по умолчанию при обращении к определенному каталогу. Обычно они называются: index.html, index.htm, index.php, index.phtml, index.shtml, default.htm, default.html.

Вот как это выглядит в структуре каталога:

Чтобы заменить этот файл на любой другой, размещаете в каталоге .htaccess и добавляете эту команду:

Вместо «hello.html» вписывайте адрес желаемого файла.

Можно задать последовательность файлов, которые будут открываться в указанном порядке, если один из них будет недоступен:

11. Добавляем или убираем html в конце URL

Сохранять или убирать расширение файлов в URL — дело вкуса каждого оптимизатора. Достоверных исследований влияния расширений в адресах на ранжирование ресурса нет, но каждый вебмастер имеет свое мнение по этому поводу.

Чтобы добавить .html:

Чтобы убрать .html:

Этими же директивами можно добавить/убрать расширение php.

12. Настраиваем кодировку

Чтобы избежать ошибок в отображении ресурса браузером, нужно сообщить ему, в какой кодировке создан сайт. Самые популярные:

  • UTF-8 — универсальная
  • Windows-1251 — кириллица
  • Windows-1250 — для Центральной Европы
  • Windows-1252 — для Западной Европы
  • KOI8-R — кириллица (КОИ8-Р)


Чаще всего используют UTF-8 и Windows-1251.

Если кодировка не указана в метатеге каждой страницы, можно задать ее через .htaccess.

Пример директивы, которая задает для файла кодировку UTF-8:

А такая команда означает, что все загружаемые на сервер файлы будут преобразованы в Windows-1251:

В примерах приведены разные кодировки, но в рамках одного сайта кодировки в этих директивах должны совпадать.

13. Создаем кастомные страницы ошибок

При помощи правил в .htaccess можно настроить отображение специально созданных страниц для самых популярных ошибок, например:

Перед тем, как прописывать директивы, создайте в корне сайта папку error и разместите туда соответствующие файлы для страниц ошибок.

Зачем это нужно? Например, чтобы не потерять пользователя на странице 404, а дать ему возможность перейти в другие разделы сайта:

Оптимизируем работу сайта

Скорость загрузки сайта — один из факторов ранжирования в поисковых системах. Увеличить ее можно в том числе с помощью директив в .htaccess.

14. Сжимаем компоненты сайта при помощи mod_gzip или mod_deflate

Сжатие файлов, с одной стороны, увеличивает скорость загрузки сайта, но с другой — больше нагружает сервер. В .htaccess можно включить сжатие при помощи двух модулей — mod_zip и mod_deflate. Они практически идентичны по качеству сжатия.

Синтаксис модуля Gzip более гибкий и он умеет работать с масками:

В mod_deflate вы перечисляете типы файлов, которые нужно сжать:

15. Усиливаем кэширование

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

В примере срок жизни кэша ограничен одной неделей («1 week»), вы можете указать свой срок в месяцах (month), годах (year), часах (hours) и т.д.

Другой вариант кода:

Для кэширования доступны следующие типы файлов:

  • image/x-icon;
  • image/jpeg;
  • image/png;
  • image/gif;
  • application/x-shockwave-flash;
  • text/css;
  • text/javascript;
  • application/javascript;
  • application/x-javascript;
  • text/html;
  • application/xhtml+xml.

Еще несколько возможностей

16. Управляем настройками php

Этот комплекс настроек выполняют программисты, если нет доступа к файлу php.ini. Остановимся на выражениях php_value, которые отвечают за объем загружаемых на сайт данных и время обработки скриптов, т.к. это напрямую влияет на производительность.

В строке «upload_max_filesize» указываете максимальный размер загружаемых файлов в мегабайтах, «post_max_size» означает максимальный объем постинга, «max_execution_time» указывает время в секундах на обработку скриптов.

17. Боремся со спам-комментариями на WordPress

Для того, чтобы перекрыть доступ спамерам к файлу wp-comments-post.php, добавьте эти директивы в .htaccess:

Вместо «mysite.com» впишите адрес вашего сайта.

18. Устанавливаем e-mail для администратора сервера

Этот код в .htaccess установит e-mail администратора по умолчанию. На него будут приходить уведомления, связанные с важными событиями на сервере.

19. Предупреждаем о недоступности сайта

В ситуации, когда сайт недоступен по техническим причинам, можно перенаправить пользователей на страницу с информацией о том, когда работа будет восстановлена. Лучше избегать таких перерывов, но в форс-мажорных обстоятельствах добавляйте следующие директивы в .htaccess:

IP-адрес в примере (12\.345\.678\.90) замените на свой, в последней строке укажите адрес страницы вашего ресурса с информацией о характере и сроках завершения работ.

Блокировка хотлинков

Суть блокировки в том, чтобы другие сайты не тырили контент и не создавали лишний траф на хостинг. Что это значит?

Предположим владелец какого-то сайта (как правило гавносайта) увидел у вас на блоге прикольное изображение. И он хочет использовать его и у себя тоже. Так вот, мало того, что он ворует ваш контент, так ему ещё и лень загружать картинку на свой хостинг, он просто копирует прямую ссылку на неё с вашего сайта!!

Это и есть хотлинки. Ясен перец, что ничего хорошего они для вас не принесут.

Как защититься от хотлинков?

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

Обратите внимание, что сначала идёт точка. Возможно в Windows могут возникнуть проблемы с созданием подобного файла, поэтому для начала рекомендую просто открыть блокнот (или что вы там используете), и записать туда следующее:

Итак, первая строчка включает mod_rewrite.

2-3 строчки — это сайты-исключения. ВАЖНО! не забудьте в исключениях указать собственный сайт, а то заблокируете доступ сами себе ��

Также можно вписать туда поисковики и социальные сети.

В последней строке указаны форматы файлов, к которым следует ограничить доступ, в примере это jpeg, jpg, gif, bmp, png.

wait.png — это картинка, которой следует заменять все остальные. То есть например можно написать в ней, что админ своровал изображение с вашего сайта (и добавить ссылку). Картинку закидывайте в папку, в которой находится .htaccess

Если для вас это лишнее, то просто не указывайте имени изображения.

Впервые познакомился с WordPress в 2009 году. С 2014 года меня можно встретить на WordCamp по всему миру — официальной конфе по WordPress, иногда там выступаю, но с 2020 выступаю только на тех, которые сам организовываю. Также периодически школа Epic Skills и LoftSchool приглашают меня вести у них уроки/вебинары.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля — пишите мне.

Код htaccess для предотвращения хотлинкинга не работает должным образом

Я много искал эту тему и нашел этот фрагмент кода (или небольшие варианты) во многих местах, включая некоторые ответы на этом сайте. Это код:

Я не веб-мастер, но я понимаю, что делает код. В моем коде, конечно, я заменил mydomain.com своим реальным доменом.

Проблема в том, что когда я помещаю этот код в свою корневую папку, он удаляет весь сайт с ошибкой 500. Если я поместил его в подкаталог, который хочу защитить, все файлы в подкаталоге становятся недоступными для всех, и на веб-сайте я вижу сломанный образ. Что с ним не так?

Причина, по которой мне нужен этот код, заключается в том, что только подписчики должны иметь доступ к файлам. Я не хочу, чтобы они делились ссылкой и делали их доступными для всех. Это тестовый код, реальные файлы для защиты имеют разное расширение, чем gif или jpg, но принцип тот же.

1 ответ

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

В файле .htaccess может быть:

И тогда ваш файл protected-asset.php может иметь:

Два фрагмента в приведенном выше коде, которые не будут просто работать сразу и нуждаются в замене вашим собственным кодом, это require_once( ‘classes/session.php’ ); и Session::UserId() . Предпосылка здесь заключается в том, что require_once загружает любые требуемые файлы, которые вам могут понадобиться, чтобы определить, был ли кто-то вошел в систему или нет, а функция UserId () возвращала 0, чтобы указать, нет ли аутентифицированного пользователя, назначенного для текущего сеанса. Вам, вероятно, понадобится использовать cookie для управления вашими сеансами и т. Д., Но похоже, что у вас уже есть абонентская часть входа, которую ваш сайт уже настроил и работает, поэтому просто скопируйте код, чтобы заменить эти две части, и он должен работать нормально для вас.

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

Топ-пост этого месяца:  Почему Create React App плохо подходит для новичков основные недостатки
Добавить комментарий