1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

Помощь Обработчик 404 ошибки Joomla 1.7

Тема в разделе "Joomla", создана пользователем alxumuk, 21 ноя 2011.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Статус темы:
Закрыта.
Модераторы: arman29, DMS, Genk0
  1. alxumuk

    alxumuk Создатель

    Регистр.:
    10 дек 2007
    Сообщения:
    15
    Симпатии:
    1
    Друзья, посоветуйте, как можно реализовать обработчик ошибки 404.
    Объясняю проблему по порядку:
    1. Был старый проект на Joomla 1.0.16, статьи имели адреса вида: http :// имя_сайта.ru/content/view/1671/2/, где 1671- ID статьи, 2- ID категории
    2. Появилась необходимость в обновлении на актуальную версию, решил перевести на 1.7. Перевел, и оказалось, что технологии ушли так далеко, как мне, простому смертному, и не снилось: в 1.7 начал активно использоваться alias статьи, и теперь статью можно получить, обратившись к сайту по адресу: http :// имя_сайта.ru/information/1671-imya-statiy-v-translite

    Очень хочется, чтобы люди, приходящие на сайт по внешним ссылкам, не смотрели на печальную страницу 404, а попадали именно на ту статью, которую хотели получить.
     
    nixsnake нравится это.
  2. binh

    binh

    Регистр.:
    6 сен 2011
    Сообщения:
    267
    Симпатии:
    75
    Как вариант нужно использовать sh404sef, т.к. без него навряд удастся решить проблему 404-й ошибки. Для того чтобы люди попадали по нужным ссылкам прийдется в Url Managerе руками менять адреса на старые. А так лучше всего в обработчике 404 й кинуть ссылку на каталог статей, ну или по крайней мере поиск.
     
  3. alxumuk

    alxumuk Создатель

    Регистр.:
    10 дек 2007
    Сообщения:
    15
    Симпатии:
    1
    список статей проблематично сделать- на сайте более 10 тыс. статей, примерно 3500 ссылок с других ресурсов.

    Думаю поковырять шаблон стандартной 404 страницы, вставив в нее код обработки запрашиваемой страницы. По факту, у нас есть все необходимые данные для того, чтобы отдать посетителю именно ту страницу, которую он запрашивает.
     
  4. nixsnake

    nixsnake Писатель

    Регистр.:
    11 окт 2011
    Сообщения:
    5
    Симпатии:
    1
    устранял проблему перенаправлением с 404 на главную страницу сайта с помощью sh404sef. Вообще мегаполезный компонент для SEO ;)
     
  5. alxumuk

    alxumuk Создатель

    Регистр.:
    10 дек 2007
    Сообщения:
    15
    Симпатии:
    1
    У меня была задача не в том, чтобы перенаправить с 404 на главную, а чтобы посетитель увидел ту страницу, за которой он пришел на сайт.

    Ниже привожу написанный мной код, который решает мою задачу. Код вставляем в самом начале файла /templates/имя_шаблона/error.php

    PHP:
    <?php

    $sqlserver 
    'адрес_SQL_сервера'
    $sqlpassword 'пароль_для_доступа_к_базе'
    $sqluser 'логин'
    $sqldbname 'имя_базы'

     
    $viv$_SERVER['REQUEST_URI'];
    preg_match('/(\d+)/s'$viv$pockets);
    $pockets1=$pockets[1]; 
    if (!
    mysql_connect($sqlserver$sqluser$sqlpassword)) {
    //echo "Ошибка подключения к серверу MySQL";
    exit;
    }
    mysql_select_db($sqldbname);
    $zapros="SELECT * FROM префикс_content WHERE id LIKE '".$pockets1."'  LIMIT 0 , 30 ";
    $res mysql_query($zapros);
    if (
    mysql_num_rows($res)>0
    {
      while (
    $row=mysql_fetch_array($res)) 

    $myid=$row['id'];
    $myalias=$row['alias'];
    $categid=$row['catid'];

    }
    $zapros1="SELECT * FROM префикс_categories WHERE id LIKE '".$categid."'  LIMIT 0 , 30 ";
    $res mysql_query($zapros1);
    if (
    mysql_num_rows($res)>0
    {
      while (
    $row=mysql_fetch_array($res)) 

    $categialias=$row['alias'];

    }
    $pockets1="http://x-news.ru/".$categialias."/".$pockets1."-".$myalias;
    if (
    $myid!="")
    {
    header('Location: ' $pockets1);
    exit();

    ?>
     
Статус темы:
Закрыта.