Оценок: 1
PHP редирект со страницы 404 - сниппет

PHP редирект со страницы 404

Представлю небольшой сниппет (PHP скрипт) для переадресации посетителей. Сниппет вызывается на странице 404, в сниппете массив, в котором задается список ссылок в формате "откуда => куда". Посетитель попадает на страницу 404 по битой ссылке, если эта ссылка есть в массиве, перенаправляется на нужную страницу, если нет - остается на странице 404.

На мой взгляд - хорошая альтернатива редиректам в htaccess (не люблю захламлять этот файл, тем более если таких редиректов много), когда нужно всего то перенаправить с неправильного на правильный URL страницы.

Если вдруг у вас еще нет страницы 404, нужно создать документ (с любым названием и шаблоном) и указать ее ID в "Системные настройки - core - Сайт - страница 404".

Если/когда страница 404 создана, создаем сниппет RedirectPHP с таким содержимым:

<?php
$redirect = array( //массив с URL, 'стараый' => 'новый'
    '/about-us' => '/o-nas.html',
    '/gallereya' => '/',//здесь - переход на главную
    //url от корня сайта, с "/"
);
//получаем текущий url страницы
$this_url = $_SERVER['REQUEST_URI'];
//ищем его в массиве
if (array_key_exists($this_url, $redirect)) {
    //если нашелся - делаем замену и перенаправляем
    $result = strtr($this_url, $redirect);
    header("HTTP/1.1 301 Moved Permanently");
    header('Location: '.$result);
} else {
    return '';
}

Сниппет можно вызвать прямо в содержимом страницы (если не предусмотрен отдельный шаблон): [[!RedirectPHP]].

Вот и все, добавлять новые URL не сложно и подтягивается этот список только после перехода по битой ссылке.

Оценок: 1
Надежный хостинг VPS серверов
  • Свои ISO образы
  • VDS с оплатой раз и навсегда
  • Аренда VDS на любой срок, с оплатой по дням
  • Большое разнообразие конфигураций
  • Дата-центры в ЕС и России
+ скидка 10%

Комментарии (0)