Как заблокировать все рефереры, кроме вашего домена, с помощью .htaccess – Полное руководство

Привет, веб-мастера! Сегодня мы погружаемся в мир безопасности веб-сайтов и изучаем удобный метод блокировки всех источников перехода, кроме вашего собственного домена, с помощью мощного файла.htaccess. Внедрив этот метод, вы можете защитить свой веб-сайт от нежелательного трафика, предотвратить хотлинкинг и повысить общую веб-безопасность. Итак, начнём!

Метод 1: запретить все, разрешить доступ из вашего домена
Первый метод предполагает использование директивы «Запретить все» для блокировки всех рефереров, а затем разрешение доступа только из вашего домена. Вот как это можно сделать:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com/ [NC]
RewriteRule ^ - [F]

В приведенном выше фрагменте кода замените «yourdomain.com» на фактическое имя домена. Этот код проверяет переменную HTTP_REFERER, чтобы убедиться, что она не пуста и не равна вашему домену. Если условия соблюдены, для всех входящих запросов возвращается ошибка «403 Forbidden».

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

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com/ [NC]
RewriteRule ^ - [F]

Добавляя условие RewriteCond %{HTTP_REFERER} !^$, вы разрешаете запросы с пустыми реферерами, но при этом блокируете рефереры из других доменов.

Метод 3: разрешить несколько доменов
Если у вас есть несколько доменов или поддоменов, которые вы хотите разрешить, вы можете изменить код следующим образом:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?otherdomain1\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?otherdomain2\.com/ [NC]
RewriteRule ^ - [F]

Просто добавьте дополнительные RewriteCondстрок для каждого домена, который вы хотите разрешить, заменив «otherdomain1.com» и «otherdomain2.com» нужными доменами.

Метод 4: перенаправление неавторизованных рефереров
Вместо блокировки неавторизованных рефереров вы можете перенаправить их на определенную страницу. Вот пример:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com/ [NC]
RewriteRule ^ http://yourdomain.com/unauthorized.html [R,L]

В этом случае любые запросы, поступающие от рефереров, отличных от вашего домена, будут перенаправлены на « http://вашдомен.com/unauthorized.html ».

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