Ошибка 404, как сделать ошибку 404, шпиона?


Когда возникает, и как исправить ошибку 404 (не найдено)

И тут может возникнуть, вполне справедливый вопрос.  А зачем ее делать то?

Страница ошибки 404

Страница ошибки 404

А разве вам не интересно, в каких случаях на вашем сайте возникает Error 404? Вот и мне интересно.

Делаем многофункциональную ошибку 404 (Error 404) 

     Данный код ответа web сервера (404 not found) является наверное самым популярным часто встречающимся на просторах сети интернет. И говорит он, как правило о том, что запрашиваемый клиентом документ не найден на сервере.

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

     Ну, а как максимум она должна немного развеселить пользователя и подчеркнуть вашу индивидуальность, т. е. удержать пользователя именно на вашем ресурсе, даже если он и не нашел, того, что искал.  Более того, с помощью этой страницы, можно узнать кто и какие запросы отправляет сайту. 😉

      Вот так например выглядит страница Ошибка 404 в моем блоге на WordPess.

Error 404 на WorPress

Error 404 на WorPress

Так, как же ее сделать то?
Точнее, как заставить Бората,  шпионить правильно ??
Да очень просто!!!

Как сделать правильную страницу 404?

Error 404, not found?

Error 404, not found?

      Когда поисковый робот переходит по битой ссылке, на несуществующую страницу, то веб сервер возвращает ему код вида: Error 404 not found, тем самым сообщая боту о том, что данной страницы просто не существует в природе, и следовательно данную ссылку индексировать не нужно. И это очень важно!

О том, как сделать Ошибку 404 на WordPress, я уже написал в соответствующей статье.

А для того, чтобы сделать корректную страницу Error 404, на простом PHP или Html сайте, достаточно создать файл .htaccess, и записать в него всего одну инструкцию:

ErrorDocument 404 /error404.php

И теперь, если сервер вернет код 404 (document not found) то .htaccess переадресует пользователя к скрипту error404.php

Остается только создать этот магический PHP документ.

На всех своих самостоятельно сделанных сайтах я естественно сохраняю данные в БД MySQL, и потом просматриваю их в админке, с возможностью поставить бан самым назойливым в .htaccess

 deny from 158.58.1.72

Но сегодня я хочу привести простой пример на PHP, как сохранить некорректные запросы к сайту в текстовый документ с расширением .txt, ведь для начала, этого будет более чем достаточно. :)
А для этого, необходимо создать PHP скрипт и в самом верху документа сделать запись:

header("HTTP/1.1 404 Not Found");

А делается это для того, чтобы сценарий корректно возвращал ошибку 404, и она не попадала в индекс поисковых систем, создавая непонятные дубли контента.

Проверить насколько корректно работает данный скрипт, можно добавив несуществующий адрес блога в webmaster.yandex.ru/addurl.xml или в качестве альтернативы можно воспользоваться сервисом mainspy.ru/otvet_servera.  После проверки сервис должен вернуть именно HTTP/1.1 404 Not Found

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

<?php

header(«HTTP/1.1 404 Not Found»);

// запоминает запрос к сайту в переменную $fix
$fix = $_SERVER[‘HTTP_HOST’].$_SERVER[‘REQUEST_URI’];

// вычисляем реферала
$refer = $_SERVER[‘HTTP_REFERER’];

// переменная $ip фиксирует ip адрес
$ip = $_SERVER[‘REMOTE_ADDR’];

// создаем и открываем на запись файл save.txt
$files = fopen(«save.txt»,»a+»);

// запоминаем текущее время
$time = date(«H:i:M:d»);

// добавляем в переменную реферала + запрос + время + ip
$save_string = «$refer $fix $time $ip»;

// теперь все записываем в файл
fputs($files,$save_string.«,\r\n»);

// и закрываем
fclose($files);

?>

<html>
<!—здесь необходимо создать саму страницу на html—>
</html>

     Теперь, каждый раз, когда будет вызываться ошибка 404, PHP сценарий будет записывать {адреса, пароли, явки} обстоятельства, которые к ней и привели. Вам же необходимо будет их проанализировать, и внести соответствующие коррективы, т. е. поправки.

P.S. Просматривая логи данного скрипта на WordPress, больше всего меня удивляют записи вида: admin.php /admin /administrator.
Ну неужели не понятно, что блог работает на WordPress, а для защиты админки, я использую файл .htaccess. 😉

P.S.Y Скачать исходник страницы Error 404, которая сохраняет некорректные обращения к сайту в текстовый файл, можно здесь.