В данном уроке мы разберем важный момент, без которого не обходится разработка ни одного сайта. Подготовка сайта к публикации на сервере.

Сначала обозначим, какие вещи нам необходимо учесть.

Сообщения об ошибках при переходе на несуществующие страницы:

сообщение об ошибке

Подобных вещей посетитель сайта не должен видеть.

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

К счастью, в ZCMF есть все необходимые инструменты для этого.

Начнем.

Сначала в админке сайта перейдем в раздел "Сайт->Настройки" и отредактируем, как нам нужно настройку "Текст страницы ошибки"

Далее отредактируем файл application/modules/default/news/scripts/error/error.phtml, чтобы он выглядел так:

Copy Source | Copy HTML
  1. <?php if ('development' == APPLICATION_ENV): ?>
  2.     <h2><?php echo $this->message ?></h2>
  3.  
  4.     <?php if ($this->exception instanceof Exception): ?>
  5.     <h3>Информация:</h3>
  6.     <p>
  7.         <b>Сообщение:</b> <?=($this->exception instanceof Exception) ? $this->exception->getMessage() : ''?>
  8.     </p>
  9.     <?php endif; ?>
  10.  
  11.     <h3>Трассировка:</h3>
  12.     <pre><?=($this->exception instanceof Exception) ? $this->exception->getTraceAsString() : ''?></pre>
  13.  
  14.     <h3>Параметры запроса:</h3>
  15.     <pre><?=($this->exception instanceof Exception) ? var_export($this->request->getParams(), true) : ''?>
  16.   </pre>
  17. <?php else: ?>
  18.  
  19.     <h2>Страница не существует.</h2>
  20.     <?= $this->z_Config('error_text') ?>
  21.  
  22. <?php endif; ?>

Теперь остался один простой шаг. Отредактируем файл .htaccess в корне сайта.

Раскомментируем строчку "SetEnv APPLICATION_ENV production" и закомментируем строчку "SetEnv APPLICATION_ENV development", чтобы все выглядело так:

Copy Source | Copy HTML
  1. SetEnv APPLICATION_ENV production
  2. #SetEnv APPLICATION_ENV development

На этом все! Теперь все несуществующие страницы выглядят пристойно и сайт можно спокойно выкладывать на хостинг.