zoo и страница ошибки 404

  • 22 Ответов
  • 4115 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Abiladenda

  • Осваиваюсь на форуме
  • ***
  • 182
  • 5
zoo и страница ошибки 404
« : 01.04.2012, 15:28:24 »
Проблема такая, если главная страница вашего сайта это zoo item, или категория, тогда не работает 404 ошибка, причем как на доработанном router.php так и на родном от yootheme, а именно если вы наберете  /ваш сайт/ а потом скажем любой текст вас перекинет на главную, а должно выдать 404 ошибку тоесть не будет 404 ошибки, это очень и очень плохо.

На данный момент решение пока такое - главную делать в стандартной Joomla, тогда все работает, но все равно если у вас наприммер есть ссылки на категории или на items из нескольких категорий, 404 не будет, наберите любой текст после нзавания категории в линке и увидите сами, фактически это означает что если вы уберете статьи с публикации в индексе она останется и 404 не будет отдавться поисковикам да и посетителям. Проверял на большом колличестве сайтов, все именно так как я здесь и описываю. Может кто знает как победить эту проблему.

*

rr9898

  • Захожу иногда
  • **
  • 10
  • 0
Re: zoo и страница ошибки 404
« Ответ #1 : 01.04.2012, 16:45:35 »
Подтверждаю. Главная сделана на zoo. Результат при несуществующей ссылке - переход на главную, а не 404. j2.5 zoo2.5.15

*

stasyansky

  • Давно я тут
  • ****
  • 228
  • 22
Re: zoo и страница ошибки 404
« Ответ #2 : 02.04.2012, 01:29:07 »
ага, 404-я ошибка перестала выдаваться после обновления ZOO 2.5.10 до последней версии.

*

Abiladenda

  • Осваиваюсь на форуме
  • ***
  • 182
  • 5
Re: zoo и страница ошибки 404
« Ответ #3 : 02.04.2012, 12:23:19 »
Мои предположения после поиска в Google zoo and page 404, таковы: - yootheme поддерживает sf404 а не встроенный Joomla SEF, отсюда все проблемы, даже их сайт работает с sf404,  однако сама Joomla 2.5 не самый быстрый движок, + zoo, уже приличная нагрузка, а если еще ставить sf404 тогда лучше отказаться от Joomla и перейти на Drupal или покупать выделнный сервер для сайта (что далеко не для всех приемлемо), добиться того же можно только в Drupal. Есть еще SOBI на замену ZOO но не знаю насколько он хорош и можно ли заменить им zoo.

ПЛОХО ТО ЧТО YOTHEME не сообщил об таком важном моменте, при обновлении, а раз так, то что слетит в следующем обновлении будем узнавать на своих сайтах.

*

Abiladenda

  • Осваиваюсь на форуме
  • ***
  • 182
  • 5
Re: zoo и страница ошибки 404
« Ответ #4 : 02.04.2012, 13:11:54 »
Нашел методом подбора что файл router.php от версии 2.5.2 решает проблему, отднако нужно разбираться, потому что слетает category and item, тоесть в ссылках будет category and item, нужно лопатить код. 

*

Abiladenda

  • Осваиваюсь на форуме
  • ***
  • 182
  • 5
Re: zoo и страница ошибки 404
« Ответ #5 : 02.04.2012, 13:37:02 »
Вот нашел то что в файле router.php мешает так сказать, если убераешь этот код тогда 404 работает нормально но появляется item и category в ссылках, это в моем router.php, он доработанный и взял я его тут же на форуме, однако в родном файле  router.php от yootheme есть тоже похожий код в самом конце файла но немного другой и с ним тоже самое 404 не работает. Может кто-то увидит эту тему и поймет что в коде не так и почему не работает страница 404.

Код
// try to retrieve vars from menu item
if (empty($vars)) {
if ($menu_item = $app->object->create('JSite')->getMenu()->getActive()) {
$vars['task'] = @$menu_item->query['view'];
 
switch ($vars['task']) {
case 'frontpage':
if ($count == 1) {
$vars['page'] = (int) $segments[0];
}
 
break;
case 'category':
if ($count == 1) {
$vars['page'] = (int) $segments[0];
$vars['category_id'] = @$menu_item->query['category_id'];
}
break;
}
}
}

*

Abiladenda

  • Осваиваюсь на форуме
  • ***
  • 182
  • 5
Re: zoo и страница ошибки 404
« Ответ #6 : 02.04.2012, 13:51:27 »
Вроде бы решил проблему нужно в доработонном файле router.php убрать внизу файла весть тот код что я вставил в предыдушем посте, тогда 404 заработает правильно, а в ссыках по прежнему не будет item и category, доработнный файл router.php под zoo 2.5.15 вот здесь,

http://joomlaforum.ru/index.php/topic,180639.msg993396.html#msg993396

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

*

tekitt

  • Новичок
  • *
  • 6
  • 0
Re: zoo и страница ошибки 404
« Ответ #7 : 02.04.2012, 16:39:50 »
Да работает, НО при этом внизу страницы после новостей там где "1-2-3-4-5" ссылки на следующие страницы - они выходят тоже в 404, а если этот код не убирать то все работает нормально, но при этот 404 вообще не как не работает.
« Последнее редактирование: 03.04.2012, 00:10:39 от tekitt »

*

Abiladenda

  • Осваиваюсь на форуме
  • ***
  • 182
  • 5
Re: zoo и страница ошибки 404
« Ответ #8 : 02.04.2012, 16:46:28 »
Значит нужно не убирать а править этот код, я думаю это дело времени. Но моем же сайте пока оставляю как сделоно здесь, у меню нет переходов на страницу, так как это вредно для SEO, я изначально затачивал сайт без переходов.

*

tekitt

  • Новичок
  • *
  • 6
  • 0
Re: zoo и страница ошибки 404
« Ответ #9 : 03.04.2012, 00:05:20 »
И кто мне сможет помочь в этом деле? :)

*

Abiladenda

  • Осваиваюсь на форуме
  • ***
  • 182
  • 5
Re: zoo и страница ошибки 404
« Ответ #10 : 03.04.2012, 13:25:45 »
Пробуйте вот это скопируйтк код, там уже все очищено как надо, создайте пустой файл router.php и вставьте в этот файл или замените код в вашем роутере zoo, вот сюда  /ваш сайт/components/com_zoo   может будет работать. Joomla 2.5.4   Zoo 2.5.16

Код
<?php
/**
* @package   com_zoo
* @author    YOOtheme http://www.yootheme.com
* @copyright Copyright (C) YOOtheme GmbH
* @license   http://www.gnu.org/licenses/gpl.html GNU/GPL
*/
 
// load config
require_once(JPATH_ADMINISTRATOR.'/components/com_zoo/config.php');
 
function ZooBuildRoute(&$query) {
 
$app = App::getInstance('zoo');
 
// init vars
$segments = array();
 
// frontpage
$task = 'frontpage';
 
if (@$query['task'] == $task || @$query['view'] == $task) {
if (@$query['task'] == $task) {
$segments[] = $task;
}
unset($query['task']);
unset($query['view']);
unset($query['layout']);
 
// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}
 
// category
$task = 'category';
 
if (@$query['task'] == $task || @$query['view'] == $task) {
if (@$query['task'] == $task) {
$segments[] = $task;
}
if (@$query['category_id']) {
$segments[] = $app->alias->category->translateIDToAlias((int) $query['category_id']);
}
unset($query['task']);
unset($query['view']);
unset($query['layout']);
unset($query['category_id']);
 
// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}
 
// alpha index
$task = 'alphaindex';
 
if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['alpha_char']) && isset($query['app_id'])) {
$segments[] = $task;
$segments[] = $app->alias->application->translateIDToAlias((int) $query['app_id']);
$segments[] = $query['alpha_char'];
unset($query['task']);
unset($query['view']);
unset($query['alpha_char']);
unset($query['app_id']);
 
// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}
 
// tag
$task = 'tag';
 
if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['tag']) && isset($query['app_id'])) {
$segments[] = $task;
$segments[] = $app->alias->application->translateIDToAlias((int) $query['app_id']);
$segments[] = $query['tag'];
unset($query['task']);
unset($query['view']);
unset($query['tag']);
unset($query['app_id']);
 
// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}
 
// item
$task = 'item';
 
if (@$query['task'] == $task || @$query['view'] == $task) {
if (@$query['task'] == $task && @$query['item_id']) {
$segments[] = $app->alias->item->translateIDToAlias((int) $query['item_id']);
}
unset($query['task']);
unset($query['view']);
unset($query['layout']);
unset($query['item_id']);
unset($query['category_id']);
}
 
// feed
$task = 'feed';
 
if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['type']) && isset($query['app_id']) && isset($query['category_id'])) {
$segments[] = $task;
$segments[] = $query['type'];
$segments[] = $app->alias->application->translateIDToAlias((int) $query['app_id']);
if ($query['category_id']) {
$segments[] = $app->alias->category->translateIDToAlias((int) $query['category_id']);
}
unset($query['task']);
unset($query['view']);
unset($query['type']);
unset($query['app_id']);
unset($query['category_id']);
}
 
// submission
$task = 'submission';
 
if (((@$query['task'] == $task || @$query['view'] == $task) && @$query['layout'] == 'submission')) {
$segments[] = $task;
$segments[] = @$query['layout'];
$segments[] = $app->alias->submission->translateIDToAlias((int) $query['submission_id']);
$segments[] = $query['type_id'];
$segments[] = $query['submission_hash'];
$segments[] = $app->alias->item->translateIDToAlias((int) @$query['item_id']);
unset($query['task']);
unset($query['view']);
unset($query['layout']);
unset($query['submission_id']);
            unset($query['type_id']);
            unset($query['submission_hash']);
            unset($query['item_id']);
}
 
// submission mysubmissions
$task = 'submission';
 
if (((@$query['task'] == $task || @$query['view'] == $task) && @$query['layout'] == 'mysubmissions')) {
$segments[] = $task;
$segments[] = @$query['layout'];
$segments[] = $app->alias->submission->translateIDToAlias((int) $query['submission_id']);
unset($query['task']);
unset($query['view']);
unset($query['layout']);
unset($query['submission_id']);
}
 
return $segments;
}
 
function ZooParseRoute($segments) {
 
$app = App::getInstance('zoo');
 
// init vars
$vars  = array();
$count = count($segments);
 
// fix segments (see JRouter::_decodeSegments)
foreach (array_keys($segments) as $key) {
$segments[$key] = str_replace(':', '-', $segments[$key]);
}
 
// frontpage (with optional pagination)
$task = 'frontpage';
 
if ($count == 1 && $segments[0] == $task) {
$vars['task'] = $task;
}
 
if ($count == 2 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['page'] = (int) $segments[1];
}
 
// category (with optional pagination)
$task = 'category';
 
if ($count == 2 && $segments[0] == $task) {
$vars['task']        = $task;
$vars['category_id'] = (int) $app->alias->category->translateAliasToID($segments[1]);
}
 
if ($count == 3 && $segments[0] == $task) {
$vars['task']        = $task;
$vars['category_id'] = (int) $app->alias->category->translateAliasToID($segments[1]);
$vars['page']        = (int) $segments[2];
}
 
// alpha index (with optional pagination)
$task = 'alphaindex';
 
if ($count == 3 && $segments[0] == $task) {
$vars['task']       = $task;
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[1]);
$vars['alpha_char'] = (string) $segments[2];
}
 
if ($count == 4 && $segments[0] == $task) {
$vars['task']       = $task;
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[1]);
$vars['alpha_char'] = (string) $segments[2];
$vars['page']       = (int) $segments[3];
}
 
// tag (with optional pagination)
$task = 'tag';
 
if ($count == 3 && $segments[0] == $task) {
$vars['task']   = $task;
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[1]);
$vars['tag']    = (string) $segments[2];
}
 
if ($count == 4 && $segments[0] == $task) {
$vars['task']   = $task;
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[1]);
$vars['tag']    = (string) $segments[2];
$vars['page']   = (int) $segments[3];
}
 
// item
$task = 'item';
 
if ($count == 1 && (int) $app->alias->item->translateAliasToID($segments[0]))
{
$vars['task']    = $task;
$vars['item_id'] = (int) $app->alias->item->translateAliasToID($segments[0]);
}
 
// feed
$task = 'feed';
 
if ($count == 3 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['type'] = (string) $segments[1];
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[2]);
}
 
if ($count == 4 && $segments[0] == $task) {
$vars['task']        = $task;
$vars['type']        = (string) $segments[1];
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[2]);
$vars['category_id'] = (int) $app->alias->category->translateAliasToID($segments[3]);
}
 
// submission
$task = 'submission';
    $layout = 'submission';
 
if ($count == 2 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task']   = $task;
$vars['layout'] = (string) $segments[1];
}
 
if ($count == 5 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task']            = $task;
$vars['layout']          = (string) $segments[1];
$vars['submission_id']   = (int) $app->alias->submission->translateAliasToID($segments[2]);
            $vars['type_id']         = (string) $segments[3];
            $vars['submission_hash'] = (string) $segments[4];
}
 
if ($count == 6 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task']            = $task;
$vars['layout']          = (string) $segments[1];
$vars['submission_id']   = (int) $app->alias->submission->translateAliasToID($segments[2]);
            $vars['type_id']         = (string) $segments[3];
            $vars['submission_hash'] = (string) $segments[4];
            $vars['item_id']         = (int) $app->alias->item->translateAliasToID($segments[5]);
}
 
// submission mysubmissions
$task = 'submission';
    $layout = 'mysubmissions';
 
if ($count == 2 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task']   = $task;
$vars['layout'] = (string) $segments[1];
}
 
if ($count == 3 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task']          = $task;
$vars['layout']        = (string) $segments[1];
$vars['submission_id'] = (int) $app->alias->submission->translateAliasToID($segments[2]);
}
 
 
return $vars;
}

*

tekitt

  • Новичок
  • *
  • 6
  • 0
Re: zoo и страница ошибки 404
« Ответ #11 : 03.04.2012, 18:18:51 »
Если в // frontpage убрать
if (@$query['task'] == $task) {
            $segments[] = $task;
         }
и оставить просто $segments[] = $task;
то постраничная навигация начинает работать на главной странице

articles/frontpage/2.html (вторая страница)

Но в категоряих все равно при переключении страниц выскакивает 404 ошибка.
т.е. осталось разобраться только с постраничной навигацией в категориях

*

Abiladenda

  • Осваиваюсь на форуме
  • ***
  • 182
  • 5
Re: zoo и страница ошибки 404
« Ответ #12 : 04.04.2012, 12:35:18 »
ПО любому роутер от yootheme не будет работать как надо еще очень долго, есть очень много ньюансов, например у меня Google видит дубли, такого плана /category/item/другая категория/другой item/

*

tekitt

  • Новичок
  • *
  • 6
  • 0
Re: zoo и страница ошибки 404
« Ответ #13 : 04.04.2012, 14:21:34 »
Добрый люди с этого форума сказали что разрабатывают router.php для последней версии zoo, не бесплатно конечно же, но я думаю лучше 1 раз купить и забыть про это дело - тем более если проект душевный и серьезный :)

*

Abiladenda

  • Осваиваюсь на форуме
  • ***
  • 182
  • 5
Re: zoo и страница ошибки 404
« Ответ #14 : 04.04.2012, 17:43:51 »
Да это плата за то что сами делаете сайт, в принципе если бы у Joomla 2.5 был такой или хотябы на половину такой потенциал как у zoo я бы никогда его не ставил, но нужен каталог вот и пришлось ставить. Если есть линк на этих людей кто делает роутер дайте pls.

Второй момент что уже и так все работает с этим роутером что я выложил, ну да нет переходов на страницы, я думаю что это нет тот момент когда нужно глубоко копать со временем и это решится, ну да дубли, но дубли по любому будут даже на голой Joomla, бороться с дублями можно и нужно, но не понятно почему такие корявые дубли, /category/item/другая категория/другой item/ у меня около 220 страниц и дублей 5-7 не больше, так что это решаемо, да в настройках инструмента для вебмастеров Google все это решается и дубли уходят.

*

tekitt

  • Новичок
  • *
  • 6
  • 0
Re: zoo и страница ошибки 404
« Ответ #15 : 04.04.2012, 19:43:40 »
http://joomlaforum.ru/index.php/topic,183603.msg983099.html
автор топика делает router.php, через неделю будет готово.

*

Abiladenda

  • Осваиваюсь на форуме
  • ***
  • 182
  • 5
Re: zoo и страница ошибки 404
« Ответ #16 : 27.05.2012, 13:14:54 »
Вышел zoo 2.5.18 там еже в роутере все правильно настроено для срабатывания 404 ошибки как надо, однако item появляется в ссылке, вот код этого роутера без item в ссылке.
Спойлер
[свернуть]

*

altry1st

  • Осваиваюсь на форуме
  • ***
  • 42
  • 2
Re: zoo и страница ошибки 404
« Ответ #17 : 03.07.2012, 02:37:24 »
У меня все равно проблема с ошибкой 404 на последнем zoo. Главная страница сделана тоже на zoo, стоит еще sh404SEF. Вместо страницы 404 выкидывает на главную, причем она криво отображается при этом. Как это победить?

*

lacriman

  • Новичок
  • *
  • 2
  • 1
Re: zoo и страница ошибки 404
« Ответ #18 : 06.07.2012, 01:10:35 »
Огромная просьба к форумчанам, помочь в решении такой проблемы: на сайте http://v-kirovograde.kr.ua/
Имеем: Joomla 2.5
       ZOO 2.5.17
       SEF - Joomla
      Главная страница - Joomla ; всё остальное - zoo
ПРОБЛЕМА:
          каким-то образом на сайте присутствуют две страницы ошибок:
       
             1) стандартная Joomla 404
             2) сгенерированная из категорий zoo второй вложенности. Пример ошибки:http://v-kirovograde.kr.ua/magaziny-v-kirovograde/category/magaziny-odezhdy-obuллллvy.html
   Далее в итэмах срабатывает стандартная страница ошибок.

Заметил это после манипуляций в router.php сделанному по описанию на форуме.
Помогите разобраться и исправить проблему, пожалуйста...

*

Abiladenda

  • Осваиваюсь на форуме
  • ***
  • 182
  • 5
Re: zoo и страница ошибки 404
« Ответ #19 : 16.07.2013, 01:20:23 »
Опять 25 в роутере от ZOO 3.0.13 проблема с 404 опять появилась, протестеруйте на своих сайтах, и отпишитесь если не трудно, имеется ввиду исправленный роутер без item_id и category_id

*

MetaSpirit

  • Живу я здесь
  • ******
  • 1379
  • 106
  • R.A.S.Lab[.org]
Re: zoo и страница ошибки 404
« Ответ #20 : 16.07.2013, 19:51:51 »
т.е. с хакнутым роутером проблемы? Используйте для модификации плагины, напр., ZOOptimizer.
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.

*

Abiladenda

  • Осваиваюсь на форуме
  • ***
  • 182
  • 5
Re: zoo и страница ошибки 404
« Ответ #21 : 16.07.2013, 19:59:19 »
Проблема в том что не отдает 404 страницу, но не в хакнутом router все работает, где-то я уже близок к победе над ним, если не получится тогда возможно скачаю плагин.

*

newvideo

  • Осваиваюсь на форуме
  • ***
  • 192
  • 2
Re: zoo и страница ошибки 404
« Ответ #22 : 23.01.2017, 15:32:40 »
При использовании тэгов в каталоге формируется ссылка типа:
http://www....ru/index.php/ALIASCATEGORY/tag/ключевое_слово
Если ключевое слово отсутствует в материалах категории, то выдается ошибка

404 - Задача [] не найдена

Подскажите пожалуйста как настроить страницу, чтобы появлялась выбранная страница из материалов, где было бы сообщение о том, что тэг не найден и предложение воспользоваться поиском вручную?

Это в Zoo или где то htaccess нужно настраивать или php.ini Joomla?
так чтобы не все 404 попадали под это перенаправление, а только из-за тэгов

Стандартный компонент перенаправления Joomla не подошел, он требует точного URL страницы, которая выдает ошибку, а в моем случае это любая страница с произвольным словом в конце, т.е. урлы всех слов забивать нереально. Может какая маска есть для путей страниц? Без последнего слова http://www....ru/index.php/ALIASCATEGORY/tag/ - не работает
« Последнее редактирование: 23.01.2017, 17:10:12 от newvideo »
кто не работает, тот ест