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

Статус
В этой теме нельзя размещать новые ответы.

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, а попадали именно на ту статью, которую хотели получить.
 
Как вариант нужно использовать sh404sef, т.к. без него навряд удастся решить проблему 404-й ошибки. Для того чтобы люди попадали по нужным ссылкам прийдется в Url Managerе руками менять адреса на старые. А так лучше всего в обработчике 404 й кинуть ссылку на каталог статей, ну или по крайней мере поиск.
 
Как вариант нужно использовать sh404sef, т.к. без него навряд удастся решить проблему 404-й ошибки. Для того чтобы люди попадали по нужным ссылкам прийдется в Url Managerе руками менять адреса на старые. А так лучше всего в обработчике 404 й кинуть ссылку на каталог статей, ну или по крайней мере поиск.
список статей проблематично сделать- на сайте более 10 тыс. статей, примерно 3500 ссылок с других ресурсов.

Думаю поковырять шаблон стандартной 404 страницы, вставив в нее код обработки запрашиваемой страницы. По факту, у нас есть все необходимые данные для того, чтобы отдать посетителю именно ту страницу, которую он запрашивает.
 
устранял проблему перенаправлением с 404 на главную страницу сайта с помощью sh404sef. Вообще мегаполезный компонент для SEO ;)
 
устранял проблему перенаправлением с 404 на главную страницу сайта с помощью sh404sef. Вообще мегаполезный компонент для SEO ;)
У меня была задача не в том, чтобы перенаправить с 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();
} 
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху