Продолжая светлое дело Филиппа, хочу рассказать вам несколько рецептов работы на UMI.CMS. Возможно, некоторые из них покажутся тривиальными и неинтересными для "продвинутых" пользователей, но тем, кто недавно начал работать с системой управления, они обязательно будут полезны.
Итак, вы установили систему, посмотрели на хомячков и плеточки, полистали документацию и решили, что пришло время изменить дизайн сайта на ваш собственный, заботливо сверстанный шаблон. Чтобы внешний вид сайта стал сюрпризом для посетителей, а процесс разработки не смущал их, поставим "заглушку" на главную страницу. Для этого сделаем статичную html-страничку splash.html, которая будет содержать примерно следующий код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" >
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Welcome!</title>
</head>
<body>
<h1>Site under construction.</h1>
</body>
</html>
Это и будет наша "заглушка". Теперь подредактируем файл .htaccess, который лежит в корневой директории вашего сайта. В него, после строки "RewriteEngine On" допишите:
RewriteCond %{REMOTE_ADDR} !123.45.67.89
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /splash.html [L]
где "123.45.67.89" - ваш ip.
Опережая возмущение разработчиков с динамическим ip, приведу альтернативное решение:
В файле .htaccess после строки: RewriteEngine On вставьте:
RewriteRule ^$ /splash.html [L]
После этого автоматически будет открываться splash.html, а сам сайт - при вызове http://domain.ru/index.php Теперь, вам будет виден сайт, а всем остальным надпись - "Site under construction."
Пока посетители радостно потирают руки в предвкушении появления вашего нового/обновленного сайта, мы продолжим работу над его совершенствованием. Поговорим теперь о важной и необходимой странице 404. Суть ее, думаю, всем известна и понятна, а как же изменить ее дизайн и содержание? Легко! Для начала в папке ~tpls/content/ создадим шаблон дизайна - 404.tpl в котором пропишем:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" >
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>% title %</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/js/easy.php"></script>
</head>
<body>
% content %
% content sitemap() %
</body>
</html>
В настройках модуля "Структура" пропишем свежесозданный шаблон, а в самой структуре создадим объект с названием 404. Назначим ему соответствующий шаблон дизайна, а в поле редактирования впишем необходимый текст: например, "Данной страницы не существует!".
Теперь начинается самое интересное. В файле ~/tpls/content/not_found/default.tpl необходимо реализовать редирект на страницу 404. В итоге, шаблон default.tpl должен выглядеть так:
<?php
$FORMS = Array();
$FORMS['block'] = <<<END
% content redirect('/404') %
END;
?>
Вот и все! При переходе на несуществующую страницу пользователи увидят надпись: "Данной страницы не существует!" и карту сайта, вывод которой обеспечивает макрос % content sitemap() %
О других рецептах читайте в следующих постах. Надеюсь, они будут регулярны и познавательны.
P.s.: Буду рад любым комментариям, замечаниям, пожеланиям, интересным задачам и их решениям.
Комментирование доступно только авторизованным пользователям.
Пожалуйста, зарегистрируйтесь или войдите на сайт.
Большие и маленькие хитрости всегда очень полезны :)
Выкладывайте почаще...
ErrorDocument 404 /404
__
С уважением,
Андрей Муравьёв
Или я в чём-то не прав?
Впрочем, не все 404 ошибки корректно обрабатываются системой:
Пример: http://www.tehnogrand.ru/news/7_0.htm
Страница была еще когда сайт работал на старой системе управления, сейчас её нет. А система выдаёт не 404, а выбрасывает на страницу авторизации, отклик сервера 200, разумеется эта страница прекрасно индексируется. А это неправильно.
PS. Извиняюсь, наверное, не стоило всё это здесь писать...
читать одно удовольствие, если бы всю документацию на свете писали в таком духе...
детям на ночь не страшно прочесть.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /splash.html [L]
Теперь, вам будет виден сайт, а всем остальным надпись - "Site under construction."
И после таких извратов Сергей Котырев смеет что-то говорить негативное в адрес Битрикса?
В битриксе закрытие публичной части делается одним нажатием соответствующей кнопки в админке.