Web Мастерская»Блог

Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.

Как заблокировать IP адрес пользователя в .htaccess

Сразу к делу! Допустим, нам необходимо заблокировать вот такой IP: xx.xx.xx.xxx, конечно, вместо иксов должны быть цифры, но в качестве пример, пойдет. Делаем так:
#User IP Banning
<Limit GET POST>
Order allow,deny
Deny from xx.xx.xx.xxx
Allow from All
</Limit>

Пример приведен с одним IP, чтобы заблокировать IP больше, просто, после строки:
Deny from xx.xx.xx.xxx

Добавляем Deny from тут IP и так каждый IP с новой строки:
#User IP Banning
<Limit GET POST>
Order allow,deny
Deny from xx.xx.xx.xxx
Deny from xx.xx.xx.xxx
Deny from xx.xx.xx.xxx
Deny from xx.xx.xx.xxx
Deny from xx.xx.xx.xxx
Allow from All
</Limit>

Если есть необходимость заблокировать все IP адреса, которые начинаются одинаково, например:
38.99.82.191
38.99.82.192
38.99.82.193

То тут необязательно писать каждый IP отдельно, достаточно написать так:
38.99.82.

И все IP, что начинаются на 38.99.82. будут заблокированы. Обратите внимание на точку в конце, если точку убрать, то блокироваться будут IP такого вида: 3...

Как убрать несколько идущих подряд слешей в URL (.htaccess)

Заметил, что с поисковой выдачи переходят по ссылкам, которые имеют несколько подряд идущие слеши, например: site///forum//342///. Я проверил, страница с таким набором слешей открывается, но все же это не правильно, я считаю. Убрать лишние слеши мне помог код:
RewriteCond %{THE_REQUEST} //
RewriteRule .* /$0 [R=301,L]

Который необходимо вставить в файл: ".htaccess", что находится в корне сайта. После этого все лишние слеши исчезли....

Поиск ошибок в PHP | Дебаг

При написании php скрипта легко допустить ошибку, из-за которой скрипт работать будет неправильно, либо вообще работать не будет. Страница пустая (белая) и ошибку очень сложно найти среди десятка тысяч символов... Для того что бы быстро найти ошибку, можно в ваш файл, после <?php добавить следующий код:
ini_set('display_errors', 'On');
error_reporting(E_ALL);

после этого должно появится сообщения с номером строки, в которой находится ошибка (правда этот вариант не всегда помогает).

Еще как вариант: добавить в файл .htaccess строку:
php_flag display_errors 1


Возможно, будет интересно:
...

Как узнать что работает на сервере Nginx или Apache

Проверить, что работает на сервере, можно при помощи функции get_headers(), что возвращает заголовки, например:
    [0] => HTTP/1.1 200 OK
    [1] => Server: nginx/1.26.2
    [2] => Date: Wed, 19 Feb 2025 13:07:34 GMT
    [3] => Content-Type: text/html; charset=utf-8
    [4] => Transfer-Encoding: chunked
    [5] => Connection: close
    // Другие заголовки

Строка: Server: nginx/1.26.2: говорит о том, что работает сервер Nginx.

Делать можно так:
print_r(get_headers('pageURL'));
...

Как заблокировать "claudebot" в .htaccess

На один форум зачастил бот claudebot, он не покидал темы форума, ни на минуту. Постоянно выходил с разных IP, так, что блокировать его по IP, нет смысла. Я нашел решение, выглядит оно так:
SetEnvIfNoCase User-Agent "claudebot" blockedBot

<Limit GET POST HEAD> 
Order Allow,Deny 
Allow from all
Deny from env=blockedBot
</Limit>

Я добавил этот код в .htaccess, что находится в корне сайта. После чего бот claudebot пока не появлялся.

Возможно, будет интересно: Блог: Как заблокировать IP адрес пользователя в .htaccess....