Пришла в голову, в результате подготовки системы к переезду на UTF сборку такая мысль: а что если сделать грамотную страницу 404?
Как сейчас реализовывается редирект… Скажем, в новой системе в cms.php отличный от старой "символьный лист" для назначения ЧПУ. У нас на проекте такой:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// static public function strToURL($str){ 'а'=>'a','б'=>'b','в'=>'v','г'=>'g','д'=>'d', 'е'=>'e','ё'=>'yo','ж'=>'zh','з'=>'z', 'и'=>'i','й'=>'i','к'=>'k','л'=>'l','м'=>'m', 'н'=>'n','о'=>'o','п'=>'p','р'=>'r','с'=>'s', 'т'=>'t','у'=>'u','ф'=>'f','х'=>'h','ц'=>'c', 'ч'=>'ch','ш'=>'sh','щ'=>'sh','ъ'=>'','ы'=>'y', 'ь'=>'','э'=>'ye','ю'=>'yu','я'=>'ja' ); foreach($ru_en as $ru=>$en){ //$string = preg_replace('/(['.$ru.']+)/i', $en, $string); } if (!$string){ $string = 'untitled'; } return $string; }
Но, сейчас не только об этом.
Переходя на новую (любую другую) сборку, человек столкнётся с тем, что его url (некоторые) начнут отдавать 404 ошибку. Это НЕИЗБЕЖНО!
По-этому, дабы свести к минимуму потери предлагаю сделать УМНЫЙ 404.
Как он должен работать?
Например, есть страница: site.ru/content/dedushkoy_morozom.html при переезде на новую версию cms и редактировании этой статьи, человек получит, при обращении к этой статье ПОСЛЕ ЕЕ редактирования в админке — 404 ошибку. Потому что новый урл будет site.ru/content/dedushkoi_morozom.htmlЧто если внедрить функцию, которая бы печатала в
<?php $messages = cmsCore::getSessionMessages(); ?> <?php if ($messages) { ?> <div class="sess_messages"> <?php foreach($messages as $message){ ?> <h1 align="center"><?php echo $message; ?></h1> <?php } ?> <hr> </div> <?php } ?>
В результате человек получал бы сообщение и возможность видеть сайт + список статей по теме.
Если например, статья находится в site.ru/content/subtext/text.html — а subtext тоже не доступен (404) — то переадресовывать нужно на уровень выше.
Если уровень выше не доступен — переадресовывать на главную страницу.
Так мы сохраним на много больше посетителей
Послесловие:
или, например, можно рассмотреть такой вариант — человеку отдаётся страница 404 с "таймером" — что через 5 секунд он будет переадресован в категорию в которой была эта статья (что-то в этом духе)
Кто-то может реализовать это принайценнейшее дополнение?