Досконала 404-ая страница h2>
Ян Ллойд (Ian Lloyd) p>
Ласкаво
просимо у світ помилки 404. Ви ось-сторінку, набравши в адресному рядку URL або ж кликнув по
"мертвої" посиланням - і вуаля! - Ви в самому серці віртуального
"ніде". Веб-сайт, що піклується про користувачів, протягне вам руку
допомоги, в той час як інші сайти не зроблять нічого, сподіваючись на
вбудовані в броузери механізми повідомлення про помилки. Але ми-то можемо вступити
краще, чи не так? p>
Я
не буду вдаватися в подробиці про те, як вам треба змінити ваш сервер для
правильної віддачі сторінки про 404-ой помилку. Шукайте подробиці у цих статтях: p>
Creating a Custom 404 Error Page (4 Guys
From Rolla) p>
Creating Custom Error Messages in Apache
(4WebHelp) p>
Я
ж запропоную вам варіанти стратегії створення сторінки "404", яка
найбільш ефективним чином допоможе справитися з неприємною ситуацією. p>
Для
Спершу нам необхідно перевірити найбільш поширений причини, з яких
люди опиняються на сторінці "404". p>
неправильно
набраний URL (або застаріла
закладка) p>
посилання
на пошуковому сервері застаріла p>
внутрішня
посилання на вашому сайті зламана через недогляд веб-майстра p>
Всі
це різні прояви одного і того ж, але для кожного з цих випадків
необхідно своє особливе "ліки" - повідомлення на сторінці
"404" має бути своїм для кожної помилки. Є кілька трюків,
які ви можете використовувати у всіх випадках, але мій найперший рада
гранично простий ... p>
Не шукайте винного! h2>
Під
що б то не стало повідомте користувачеві, що щось не так, але в жодному
разі не вимовляє йому, навіть якщо ви точно знаєте, що це саме його помилка! Обороти типу
"ймовірно", "швидше за все" і т.п. тут будуть дуже до речі.
Не псуйте враження від вашого сайту у вашого відвідувача, адже все ще можна
виправити. p>
404-ая страница повинна мати ... h2>
Ви
повинні переконатися, що поряд з фразою типу "щось вийшло не так",
Ваша сторінка має перераховані такі варіанти: p>
Посилання на карту сайту (якщо картка у вас є) і
посилання на головну сторінку сайту. Це найпростіший спосіб
допомоги користувачам. Він не вимагає написання хитромудрих скриптів. p>
Блок пошуку. Якщо у вас на сайті
є функція пошуку, додайте поле пошуку на вашу 404-ую сторінку. Якщо пошуку
немає, і у вас на сайті сторінка 404 з'являється дуже часто, постарайтеся цю
функцію як-небудь роздобути. p>
Суто мінімалістичний зовнішній вигляд.
Уникайте поміщати на "404-ю" всю
стандартну навігацію вашого сайту. Уникайте великої кількості відволікаючих деталей. Крім
того, повний комплект навігації на 404-ої сторінки вимагає додаткових
витрат на підтримку її актуальності. Якщо на 404-ої сторінки навігації не
буде, про її оновлення можна не турбуватися, а отже ваші відвідувачі не
зіткнуться із ситуацією, коли посилання навігації на 404-й сторінці самі призводять
до 404-ої сторінки. Це я так іронізую! p>
Не
використовуйте професійний жаргон. У сенсі, ми тут говоримо про 404-х
сторінках, вірно? Адже ми серед своїх. Але ось шістдесятирічної Доріс, що потрапила
на "мертву посилання" в результаті пошуку на сайті про в'язання, буде
невтямки, що це за 404-ая помилка така. Якщо вже вам так хочеться використовувати
фразу "Помилка 404" - робіть це непомітно, помістіть її в підвалі
сторінки як примітка для тих, хто розуміє цей химерний мова Мережі. p>
Тепер
давайте подивимося, як можна змусити 404-ю сторінку попрацювати на вас, а не проти вас. p>
Зробимо все по-розумному h2>
Тут
я повинен зазначити, що вам будуть потрібні знання JavaScript (можливо, ви не маєте прав на виконання серверних
скриптів - це залежить від налаштувань вашого сервера). Тому не забувайте про
тег, всередині
якого повинен розміщуватися повідомлення для користувачів, які відключили
JavaScript в цьому
броузері. Якщо ж ви можете
використовувати серверні скрипти (що в даному випадку переважно - проблеми
з сумісністю і настройками броузерів відпадають самі собою), то Пристосуйте
запропонований код під ваші потреби. p>
По-перше,
вам потрібно буде задати кілька змінних: p>
var
strReferrer = document.referrer.toLowerCase (); p>
var blnSearchReferral = false; p>
var blnInsiteReferral = false; p>
var str =""; p>
var strSite = ""; p>
Отже,
що ми будемо з ними робити? p>
Невірно
набраний URL p>
Невірно
набраний URL (або ж
застаріла закладка) не будуть мати referrer, так що ваш код для цього випадку повинен бути чимось на зразок
цього: p>
УВАГА!
Символ "» "означає в даному випадку лише перенесення рядка так, щоб
вона могла бути показана на цій сторінці - вам не треба використовувати цей символ у своєму коді. p>
if (strReferrer.length == 0) p>
( p>
str + = 'We
think you will find one of the following » p>
links
useful :'; p>
str + = '
'; p>
str +=''; p>
str +=''; p>
str + = '
You
may not be able to find the » p>
page
you were after because of :'; p>
str +=''; p>
str + = '
An out-of-date bookmark/favorite » p>
'; p>
str + = '
A search engine that has an out-» p>
of-date
listing for us '; p>
str + = '
A mis-typed address '; p>
str +=''; p>
document.write (str); p>
) p>
Застаріла посилання на пошуковику h2>
Якщо
значення referrer
присутній, ми можемо пошукати у ньому URL пошукового сервера (зрозуміло тут ви можете дати простір
своєї фантазії). Після цього ми можемо розібрати параметри пошуку, знайти список
ключових слів, які відвідувач вводив на пошуковому сервері і запропонувати йому
сторінку, яка підходить на нашу думку під його запит. p>
if (strReferrer.length! = 0) p>
( p>
if
((strReferrer.indexOf ( ". looksmart.co")> 0 )|| p>
(strReferrer.indexOf ( ". ifind.freeserve")> 0 )|| p>
(strReferrer.indexOf ( ". ask.co")> 0 )|| p>
(strReferrer.indexOf ( "google.co")> 0 )|| p>
(strReferrer.indexOf ( "altavista.co")> 0 )|| p>
(strReferrer.indexOf ( "msn.co")> 0 )|| p>
(strReferrer.indexOf ( "yahoo.co")> 0)) p>
( p>
blnSearchReferral = true; p>
// get
site domain - split at the first forward-slash p>
var
arrSite = strReferrer.split ("/"); p>
//
now find search parameters p>
var
arrParams = strReferrer.split ("?"); p>
var
strSearchTerms = arrParams [1]; p>
arrParams = strSearchTerms.split ("&"); p>
p>
strSite = arrSite [2]; p>
var
sQryStr =""; p>
p>
// define
what search terms are in use by the » p>
different
engines p>
var
arrQueryStrings = new Array (); p>
arrQueryStrings [0] = "q =";
//google, altavista, msn p>
arrQueryStrings [1] = "p =";
//yahoo p>
arrQueryStrings [2] = "ask =";
//ask jeeves p>
arrQueryStrings [3] = "key =";
//looksmart p>
p>
for
(i = 0; i = 0) p>
) p>
( p>
document.write ( "Our» p>
excellent
widgets page
"); p>
) p>
) p>
) p>
Зрозуміло,
якщо у вас на сайті є свій пошуковий механізм, ви могли б використовувати
ключові слова з referrer і
провести пошук автоматично. Однак ручний пошук все-таки краще,
так як автоматичний пошук може видати абсолютно не ті сторінки. p>
Бита посилання на сайті h2>
Ми
подбали про відвідувачів, які прийшли з битим посиланнях з пошукових серверів.
Тепер давайте подбаємо про посилання не з пошукових серверів (або з тих
пошукових серверів, про які ви не знаєте). У код треба додати ще кілька
умов: p>
if (! blnSearchReferral) ( p>
strSite
= StrReferrer; p>
strSite
= StrSite.split ("/"); p>
strSite
= StrSite [2]; p>
document.write ( "
You
were incorrectly referred to » p>
this
page by: "
+ StrSite + "» p>
We suggest you try one of the links below: » p>
p >"); p>
) p>
...
і цими посиланнями будуть посилання на карту сайту та посилання на головну сторінку
сайту, про які ми говорили на початку. p>
А
що, якщо проблема в вашому сайті? p>
Ви
не можете взяти і написати на вашій 404-ої сторінки "На сайті, з якого
ви прийшли, невірна посилання ", коли невірний referrer - це ваш веб-сайт. В
такому випадку було б не зайве змінити формулювання і визнати свою провину. p>
blnInsiteReferral
= ((strReferrer.indexOf ( "http://» p>
www.mysite.co.uk ")> = 0 )|| p>
(strReferrer.indexOf ( "http://www.myothersite.com")
» P>
> = 0)) p>
if
(blnInsiteReferral) p>
( p>
document.write ( "
This
one's down to us! Please » p>
accept
our apologies for this - we'll see to it » p>
that
the developer responsible for this broken » p>
link
is given 20 lashes (but only after he or » p>
she
has fixed this problem )."); p>
) p>
Рішення проблеми h2>
Отже,
ми зуміли знайти шлях з похмурих надр 404-ой помилки. Але виправили ми самі
помилки? Ні. Тим не менше, у вас є кілька варіантів дій, тому що ми
вже знаємо, яка сторінка запитувати і яка сторінка зробила помилкову
посилання (якщо звичайно вона була). Ми можемо занести цю інформацію в базу даних,
або автоматично або за допомогою кнопки "повідомте про сломанной посиланням
адміністратору ", яку можна помістити на 404-ої сторінки. Другий спосіб
зменшить рівень "шуму", тому що відвідувачі зазвичай натискають такі
кнопки тільки у випадку дуже важливою сломанной посилання. Далі ви вже самі
вирішуйте, як ви будете розпоряджатися накопиченої інформацією. p>
Що ще почитати h2>
Подивіться,
як дані ради працюють у реальному житті. Ось приклади з сайтів Accessify і A List Apart: p>
Скопіюйте
дану посилання в адресний рядок броузера, щоб зімітувати випадок з
застарілої закладкою: http://www.accessify.com/err.asp p>
А
от варіант зі зламаною посиланням p>
Імітація
посилання з результатів пошуку на Google
[тут задіяна проміжна сторінка] p>
викачати
приклад 404-ї сторінки з кодом, які описані в статті, і змініть його на свій
розсуд. p>
Список літератури h2>
Для
підготовки даної роботи були використані матеріали з сайту http://www.webmascon.com/
p>