Форум русской поддержки Joomla!® CMS
27.05.2017, 17:55:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор

Не выдает пользователскую страницу 404 - страница не найдена

 (Прочитано 27103 раз)
0 Пользователей и 1 Гость смотрят эту тему.
7daysfreelancer
Новичок
*

Репутация: +0/-1
Offline Offline

Сообщений: 4


« : 08.07.2012, 16:23:41 »

Добрый день всем, у меня одна очень странная проблема, возможно ее решение довольно простое, но пока найти его мне не удалось:

Дело у меня такое, есть сайт на Joomla 2.5.6 с привязкой VirtueMart 2.0.6. На главной странице сайта выводится главная страница VirtueMart без модулей VirtueMart, просто видны категории товаров, рекомендуемые товары, топ товары и новые товары, магазин расположен по другому адресу - http://mysite.ru/magazin. Все нормально работало пока дело не дошло до редиректов и htaccess и custom 404 error page. Дело в том, что когда набираешь несуществующий URL, вместо того, чтобы показать сделанную мною страницу 404, сайт показывает мне ссылку : http://mysite.ru/index.php?option=com_virtuemart, каждый раз, когда я набираю что-то левое, показывает мне главную страницу компонента, причем в странном виде.. Не так, что перенаправляется на главную страницу сайта, а только на главную страницу VirtueMart...


SEF включен,

Перенаправление URL включено,

404 страница была создана как в статье:http://docs.joomla.org/Creating_a_Custom_404_Error_Page

.htaccess такой вот...


Показать текстовый блок


Мне бы хотелось, чтобы каждый раз, как набирается несуществующий адрес, ссылка вела бы на страницу 404...

Единственное, что я заметил, что если набрать скажем http://mysite.ru/index.php?option=com_oijoijo выдается ошибка 404 Компонент не найден т.е. не моя 404 страница, а стандартная 404 страница отсутствия компонента, хотелось бы узнать, как в данном случаи также перенаправить пользователя на мою 404 страницу?


Зараннее, спасибо за помошь!
« Последнее редактирование: 11.03.2013, 00:53:38 от fsv » Записан
z0dchij
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Сообщений: 47



« Ответ #1 : 08.07.2012, 17:00:46 »

Цитировать
404 страница была создана как в статье:http://docs.joomla.org/Creating_a_Custom_404_Error_Page
Там про .htaccess вроде бы ничего не сказано.
Цитировать
ErrorDocument 404 /index.php?option=com_content&view=article&id=6
Закомментируйте эту строчку и посмотрите что будет.

P.S. Может быть будет полезно. Я при создании кастомизированной страницы ошибки 404 пошел по той логике, что в 2.5 Joomla! для такого случая есть файл error.php из папки templates/system Поэтому просто изменил выдаваемое им по умолчанию на нужное мне. И все.
« Последнее редактирование: 08.07.2012, 17:09:20 от z0dchij » Записан
7daysfreelancer
Новичок
*

Репутация: +0/-1
Offline Offline

Сообщений: 4


« Ответ #2 : 08.07.2012, 17:17:17 »

Спасибо Вам за ответ, я так понял сразу в error.php в моем шаблоне прописать на HTML структуру самого документа 404, да?
Записан
z0dchij
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Сообщений: 47



« Ответ #3 : 08.07.2012, 17:37:17 »

У меня в папке с шаблоном нет такого файла. Стандартная джумловская страница ошибки выдавалась посредством файла error.php в /templates/system/ Все что я сделал это поменял само выдаваемое содержимое на нужное мне, то есть прописал свое содержимое в теге <body>:
Код:
<body>
<!-- Моя страница ошибки 404 -->
</body>

Хотя в семантической корректности это способа я не уверен.
« Последнее редактирование: 08.07.2012, 17:41:33 от z0dchij » Записан
7daysfreelancer
Новичок
*

Репутация: +0/-1
Offline Offline

Сообщений: 4


« Ответ #4 : 08.07.2012, 17:52:16 »

Нет и данный способ не сработал, что-то очень странная ошибка, с Joomla я работаю давно уже, но такого у меня еще не было...
Записан
7daysfreelancer
Новичок
*

Репутация: +0/-1
Offline Offline

Сообщений: 4


« Ответ #5 : 08.07.2012, 17:53:41 »

Даже ставлю редирект с http://mysite.ru/index.php?option=com_virtuemart на http://mysite.ru - redirekt tozhe na rabotaet...
Записан
Tuzemec
Давно я тут
****

Репутация: +26/-0
Offline Offline

Пол: Мужской
Сообщений: 225


Ня!


« Ответ #6 : 17.07.2012, 11:06:06 »

Даже ставлю редирект с http://mysite.ru/index.php?option=com_virtuemart на http://mysite.ru - redirekt tozhe na rabotaet...
Та же проблема. Только версия VM 2.0.8c и Joomla 2.5.6
Есть панацея от такого бага?
« Последнее редактирование: 17.07.2012, 12:23:18 от Tuzemec » Записан
SAS1024
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2


« Ответ #7 : 30.10.2012, 21:24:43 »

Кто-нибудь решил данную проблему? Я тоже с таким столкнулся...
Записан
niggatub
Давно я тут
****

Репутация: +2/-3
Offline Offline

Сообщений: 205


« Ответ #8 : 15.11.2012, 18:12:56 »

архиважный сабж. Решение  никто не нашел?
Вобще решение я думаю поставить тот же sh404SEF, но уже все линки проиндексированы и тд и тп... и заново все перелопачивать на компоненте как то не торт. Без сторонних компонентов как то можно решить?
Записан
kiryann
Захожу иногда
**

Репутация: +3/-0
Offline Offline

Сообщений: 19


« Ответ #9 : 22.11.2012, 18:43:39 »

Такая же проблема, пока решил назначив главной страницу материалов Joomla, так 404 работает нормально, но всё же хотелось бы вывести вирт на главную, да и с другими компонентами, которые используют свой router.php такая же проблема, как только назначаешь главной страницей перестаёт выдавать 404 ошибку, например с zoo такая лажа, проблема была в router.php, вроде решили уже. Вообщем скорей всего надо копать в router.php , как  пока не знаю, если кто победил отзовитесь.
Записан
Tuzemec
Давно я тут
****

Репутация: +26/-0
Offline Offline

Пол: Мужской
Сообщений: 225


Ня!


« Ответ #10 : 24.11.2012, 09:59:46 »

Вообщем скорей всего надо копать в router.php
Роутер самой Joomla, я правильно понял?
Записан
kiryann
Захожу иногда
**

Репутация: +3/-0
Offline Offline

Сообщений: 19


« Ответ #11 : 24.11.2012, 20:42:44 »

router.php компонента
Записан
Tuzemec
Давно я тут
****

Репутация: +26/-0
Offline Offline

Пол: Мужской
Сообщений: 225


Ня!


« Ответ #12 : 18.12.2012, 10:58:23 »

... когда набираешь несуществующий URL, вместо того, чтобы показать сделанную мною страницу 404, сайт показывает мне ссылку : http://mysite.ru/index.php?option=com_virtuemart, каждый раз, когда я набираю что-то левое, показывает мне главную страницу компонента, причем в странном виде.. Не так, что перенаправляется на главную страницу сайта, а только на главную страницу VirtueMart...
Единственное, что я заметил, что если набрать скажем http://mysite.ru/index.php?option=com_oijoijo выдается ошибка 404 Компонент не найден т.е. не моя 404 страница, а стандартная 404 страница отсутствия компонента, хотелось бы узнать, как в данном случаи также перенаправить пользователя на мою 404 страницу?
В общем есть мысля такая...
В файле /component/com_virtuemart/virtuemart.php нужно поправить строки следующего содержания:
Код:
} else {
    vmDebug('VirtueMart controller not found: '. $_class);
    $mainframe = Jfactory::getApplication();
    $mainframe->redirect('index.php?option=com_virtuemart');
}
Они в самом конце файла находятся. Я заменил на вот это:
Код:
} else {
    vmDebug('VirtueMart controller not found: '. $_class);
    $mainframe = Jfactory::getApplication();
    $mainframe->redirect(JRoute::_ ('index.php?option=com_virtuemart'));
}
Но, думаю можно и на страницу 404 направить при желании... мне вроде как помогло...
Записан
Zander_Black
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 25


« Ответ #13 : 25.12.2012, 14:44:44 »

Дело не совсем в этом. Редирект редиректом, а дубли страниц всё равно создаются! Как этого избежать придумал кто?
Записан
indigo
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 73


« Ответ #14 : 13.01.2013, 01:16:54 »

таже проблема, решения не нашёл пока-что....
Записан
wedflower
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #15 : 05.03.2013, 15:26:50 »

Tuzemec, спасибо! именно ваше решение мне сейчас помогло.
Записан
ANiMAL
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 28



« Ответ #16 : 07.03.2013, 16:46:28 »

Спасибо за подсказку Tuzemec!
Решил проблему так:
Код:
else {
    vmDebug('VirtueMart controller not found: '. $_class);
    $mainframe = Jfactory::getApplication();
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
echo file_get_contents('http://site.com.ua/404');
exit;
}

Сделал материал для 404 странице, опубликовал его в скрытый материал с алиасом 404
И теперь ВМ отдает при несуществующей странице нужную мне страницу с заголовком 404.
Заменяйте
Код:
http://site.com.ua/404
на путь к своему сайту
Записан
pberit
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 17


« Ответ #17 : 11.03.2013, 00:30:09 »

Спасибо вам Tuzemec и ANiMAL. Но у меня не все работает. Если ввожу после назвы домена буквы то после етих изменений открывается 404 страница которую создал я, а когда после названия домена ввести цифры то страница моего сайта но пустая. При этом на сайте множество дублей! Каждый товар проиндексировался во всех категориях. Изменения, которые вы посоветовали не уничтожили эти ссылки они и дальше открываются. Если убрать с главной домашнюю страницу ВМ то эти страницы перестают существовать и открывается стандартная страница 404. Помогите пожалуйста решить эту проблему с дублями! Готов даже заплатить.
Записан
pberit
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 17


« Ответ #18 : 17.03.2013, 17:03:29 »

Пришлось платить фрилансеру. Решил он данную проблему изменениями в файле framework.php. Работает вроде хорошо. Вибивает свою 404 страницу. Если кому будет надо обращайтесь, попробую и вам помочь.
Записан
jouser
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Сообщений: 126



« Ответ #19 : 20.03.2013, 17:55:56 »

Эта проблема точно возникает когда главной страницей стоит сам вирт, но как это побороть нигде ничего не написано(
Записан
Tuzemec
Давно я тут
****

Репутация: +26/-0
Offline Offline

Пол: Мужской
Сообщений: 225


Ня!


« Ответ #20 : 21.03.2013, 21:14:41 »

Пришлось платить фрилансеру. Решил он данную проблему изменениями в файле framework.php. Работает вроде хорошо. Вибивает свою 404 страницу. Если кому будет надо обращайтесь, попробую и вам помочь.
Кому надо... очень надо! Всем практически. В особенности мне =)
Записан
pberit
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 17


« Ответ #21 : 22.03.2013, 01:16:24 »

Кому надо... очень надо! Всем практически. В особенности мне =)
Ну так давайте вместе по експерементируем? Мне нужен доступ к вашему сайту по ftp, что я сайту сделаю? Я просто не уверен что смогу все из своего сайта перенести на другой, надо смотреть.
Записан
bubaduba
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 40


Делай добро, и отпускай его в море...


« Ответ #22 : 26.04.2013, 01:22:48 »

Проблема актуальна не только для сайтов с виртом, у  меня например перестал редирект работать тоже, буду благодарен за помощь.
Joomla 2.5.9 +sef404 3.7
« Последнее редактирование: 26.04.2013, 01:25:52 от bubaduba » Записан
MakcOn
Захожу иногда
**

Репутация: +1/-2
Offline Offline

Сообщений: 16


« Ответ #23 : 28.05.2013, 03:31:59 »

Спасибо ANIMAL Cheesy только у тебя видимо  очепятка в коде.

у меня только так заработало

}else {
    vmDebug('VirtueMart controller not found: '. $_class);
    $mainframe = Jfactory::getApplication();
   header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
   echo file_get_contents('http//ваш сайт.сом/404');
   exit;
}

если домен Рф (как у меня Crazy) то после http я ставил адрес в пуникоде.
Записан
Uvic
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #24 : 21.07.2013, 17:56:58 »

добрый день у меня в VirtueMart не переходит на 404 страницу.
сайт.домен/mobilnye-telefony/proizvoditeli-telefonov/134 выводит отображение сайт.домен/mobilnye-telefony/proizvoditeli-telefonov/
сайт.домен/mobilnye-telefony/proizvoditeli-telefonov134 выводит отображение сайта на уровень выше сайт.домен/mobilnye-telefony/
Аналогичная проблема с товаром - переходит на слеш выше.
сайт.домен/mobilnye-telefony123/proizvoditeli-telefonov134
в случае если на 1 уровень глубже чем сайт.домен нарпимер так выводит ошибку 404
Подскажите в чем может быть проблема?
 Joomla!, 2.5.7
 VirtueMart  2.0.14
.htaccess- не менял после установки Joomla (файл переименван в .htaccess и все)
Показать текстовый блок
« Последнее редактирование: 21.07.2013, 19:44:14 от Uvic » Записан
draff
Практически профи
*******

Репутация: +169/-5
Offline Offline

Пол: Мужской
Сообщений: 2749


step by step


« Ответ #25 : 21.10.2013, 21:30:40 »

У кого не работает редирект на 404, проверяем наличие пункта меню- Главная VirtueMart
Записан
stepan39
Давно я тут
****

Репутация: +18/-0
Offline Offline

Пол: Мужской
Сообщений: 240



« Ответ #26 : 29.11.2013, 16:19:49 »

Мне помогло это https://forum.virtuemart.net/index.php?topic=119171.0
Записан
akunari
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Пол: Женский
Сообщений: 28


« Ответ #27 : 02.12.2013, 20:56:06 »

Спасибо, stepan39Cheesy Cheesy Cheesy
Ваш метод помог)
на всякий случай скидываю нужный кусок сюда)

I have found a possible fix. In /components/com_virtuemart/virtuemart.php, line 111, i changed from:

Код:
$mainframe->redirect(JRoute::_ ('index.php?option=com_virtuemart&view=virtuemart', FALSE));
   

to

Код:
JError::raise(E_ERROR,'404','Not found');
    $mainframe->close();
   

This seems to do the trick.
Записан
fsv
Moderator
*****

Репутация: +357/-2
Offline Offline

Пол: Мужской
Сообщений: 2487


« Ответ #28 : 09.01.2014, 20:45:12 »

http://joomlaforum.ru/index.php/topic,284106.msg1414708.html#msg1414708
Записан
fenix-77
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 8


« Ответ #29 : 26.11.2014, 04:14:17 »

Мне помог метод описанный здесьhttp://kitoraga.com/blog/stranicza-404-i-virtuemart-2.html
Правда слегка его переделал:
Код:
} elseif (!$helper->use_id && ($helper->activeMenu->view == 'category' ) )  {
$product = $helper->getProductId($segments ,$helper->activeMenu->virtuemart_category_id);
$vars['virtuemart_product_id'] = $product['virtuemart_product_id'];
$vars['virtuemart_category_id'] = $product['virtuemart_category_id'];

//codepyro - removed suffix from router
//check if the last segment is a product.
//if so then load the product details page instead of category
if(isset($vars['virtuemart_product_id']))
{
   $vars['view'] = 'productdetails';
}
else
{
          JError::raiseError(404, JText::_("Page Not Found"));
}


} elseif (isset($segments[0]) && ctype_digit ($segments[0]) || $helper->activeMenu->virtuemart_category_id>0 ) {
$vars['virtuemart_category_id'] = $segments[0];
$vars['view'] = 'category';


} elseif ($helper->activeMenu->virtuemart_category_id >0 && $vars['view'] != 'productdetails') {
$vars['virtuemart_category_id'] = $helper->activeMenu->virtuemart_category_id ;
$vars['view'] = 'category';

} elseif ($id = $helper->getCategoryId (end($segments),$helper->activeMenu->virtuemart_category_id )) {

// find corresponding category . If not, segment 0 must be a view
$vars['virtuemart_category_id'] = $id;
$vars['view'] = 'category' ;
} else {
JError::raiseError(404, JText::_("Page Not Found"));
}
Но потом вылезла ошибка 404 при коментировании товара и редиректе.
Решил правкой components\com_virtuemart\controllers\productdetails.php
Код:
$this->setRedirect (JRoute::_ ('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $virtuemart_product_id, FALSE), $msg);
Заменил на:
Код:
$virtuemart_category_id = vRequest::getInt('virtuemart_category_id',0);
$this->setRedirect (JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id='.$virtuemart_product_id.'&virtuemart_category_id='.$virtuemart_category_id, FALSE), $msg);
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet