special

This webpage has been robot translated, sorry for typos if any. To view the original content of the page, simply replace the translation subdomain with www in the address bar or use this link.

Обработка ошибки 404 Not Found The requested URL



Представьте себе ситуацию: ходит себе посетитель по вашему сайту, на ссылки кликает, окна открывает... И вдруг – видит, в одном – сообщение на бледном default фоне: Not Found
The requested URL /somepath/pivo.html was not found on this server.
Apache/1.3.X Server at www.some.net Port XX

Эта фраза, так много говорящая посетителю без знания английского, автоматически генерируется сервером, если запрошен документ с URL www.some.net/somepath/pivo.html, которого нет на сервере. Причины? Линк битый или букмарк устарел. Или посетитель набирал адрес вручную и очепятка вышла. Или пиво кончилось...

Особо вежливые вебмастера в таких случаях не любят пугать юзера бледным техническим текстом, а создают в каталоге сервера файл .htaccess (если его там еще нет), и помещают туда строку: ErrorDocument 404 /path/error.html

И теперь сервер во всех случаях ошибки 404 («документ не найден») выдает посетителю заготовленную старательным вебдизайнером страницу error.html. На этой странице в фирменном для ресурса стиле авторы извиняются (что хуже, чем целые линки, но лучше, чем ничего), объясняют посетителю, что запрошенной страницы здесь нет и что теперь с этим делать. Например, пожаловаться на email вебмастера о плохом обслуживании или перейти на главную страницу ресурса. Некоторые особо продвинутые вставляют на этой же error.html небольшой поисковик или карту сайта...

Если ваш хостинг позволяет использовать SSI (server-side includes) или php, то можно не только извиниться, но и напомнить посетителю, какого именно «Пива нет» (если он, посетитель, уже успел заблудиться в открытых окнах вашего сайта и в упор не помнит, с какой страницы линк привел его к «Ошибке 404»). И просить его отправить вебмастеру уже подготовленное письмо об ошибке.

Для этого файл error.shtml (*.shtml - стандартное расширение файлов, которые будут обрабатываться сервером на предмет SSI-инструкций) должен содержать: <p>Извините, пива марки &quot;<!--#echo var="REQUEST_URI"-->&quot;нет!</p> <p>Пишите в <a href="mailto:[email protected]?subject=error404&body=<!--#echo var="REQUEST_URI"--> not found; link from <!--#echo var="HTTP_REFERER"-->">Книгу Жалоб</a>. Вебмастера уволят.</p>

Решение с помощью php (если он у провайдера хостинга есть): в .htaccess пишется

ErrorDocument 404 /path/error.php

В теле файла error.php (стандартно *.php-файлы обрабатываются на предмет php-инструкций ) соответственно: <p>Извините, файл &quot;<? echo $REQUEST_URI ?>&quot; не найден...</p> <p>Пишите в <a href="mailto:webmaster@ some.net?subject=error404&body=<? echo $REQUEST_URI ?> not found; link from <? echo $HTTP_REFERER ?>">Книгу Жалоб</a>. Вебмастер исправит.</p>

В обоих (*.shtml и *.php) случаях пользователь увидит извинение; а если кликнет на сылку «mailto:», то в окне его почтового клиента появится уже заполненное сообщение об ошибке: чего нет, откуда на это "то, чего нет" ссылка.

Примечания: В принципе, вы можете ничего перечисленного выше не делать. Пускай учат английский!...

Created/Updated: 25.05.2018

';>