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

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

Joomla+ VirtueMart страница 404 не отдает код 404

 (Прочитано 673 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Adrian1111
Давно я тут
****

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

Сообщений: 273


« : 06.06.2016, 16:32:34 »

Здравствуйте!

Страница 404 отдает код 200ок.

Если ввести тупо абракадабру, то даже 404 не выдает - перенаправляет на главную страницу сайта (главная страница каталога товаров virtuemart).
Записан
fsv
Moderator
*****

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

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


« Ответ #1 : 07.06.2016, 00:24:43 »

Если ввести тупо абракадабру, то даже 404 не выдает - перенаправляет на главную страницу сайта (главная страница каталога товаров virtuemart).
Какая версия? Если >=2, в настройках смотрели? - http://clip2net.com/s/3yUA3y9
Записан
Adrian1111
Давно я тут
****

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

Сообщений: 273


« Ответ #2 : 15.06.2016, 12:39:14 »

Какая версия? Если >=2, в настройках смотрели? - http://clip2net.com/s/3yUA3y9

Версия - 2.0.--. В настройках управления страницей 404 нет.
Записан
fsv
Moderator
*****

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

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


« Ответ #3 : 15.06.2016, 14:05:21 »

Версия - 2.0.--. В настройках управления страницей 404 нет.
Если версия очень старая, раньше не было. Вот тема.
Если нет возможности обновиться,
Показать текстовый блок
скачайте новый, посмотрите как реализовано, допишите.
Записан
Stasweb
Живу я здесь
******

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

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



« Ответ #4 : 15.06.2016, 15:01:41 »

Вот у меня версия Joomla! 3.5.1 и VirtueMart 3.0.16 так же в настройках стоит Включить в VirtueMart обработку 404 ошибки
а страница 404 _https://lik-astana.kz/404.html_ отдает ответ 200 проверял тут http://wwhois.ru/response.php .
Да и в htaccess прописано ErrorDocument 404 /404.html и сам код error.php рабочий
Код:
<?php
defined('JPATH_BASE') or die();
if($this->error->getCode()==404){
header("HTTP/1.0 404 Not Found");
header("HTTP/1.1 404 Not Found");
header("Status: 404 Not Found");
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, JURI::base().'/404.html');
$data = curl_exec($ch);
curl_close($ch);
echo $data;
die();
}
?>
в чем проблема не могу понять может что то посоветуете
Записан
KeshaK
Новичок
*

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

Сообщений: 4


www.termogorod.ru


« Ответ #5 : 30.10.2016, 17:36:18 »

Та же проблема на VM 3.0.16 и Joomla 3.6.2!  VirtueMart не отдает страницу ошибки 404, а отдает ответ 200 при вводе неправильного адреса товара или категории.  Включал/отключал в VirtueMart обработку 404 ошибки - не помогает. Спецы, дайте совет дельный, пожалуйста!
Записан
kovshenya
Новичок
*

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

Сообщений: 8


« Ответ #6 : 29.12.2016, 15:30:22 »

Та же проблема на VM 3.0.16 и Joomla 3.6.2!  VirtueMart не отдает страницу ошибки 404, а отдает ответ 200 при вводе неправильного адреса товара или категории.  Включал/отключал в VirtueMart обработку 404 ошибки - не помогает. Спецы, дайте совет дельный, пожалуйста!

Есть решение ?
Та же проблема!


Для всех страниц, кроме каталога, настойку 404 выполнила так:

1. Создала материал 404 с дефолтным текстом без категории.
2. Создала пункт меню 404 (не опубликован, скрыт), подтянула к нему материал 404
3. Скопировала адрес моего материал 404 , у меня в формате /index.php?option=com_content&view=article&id=2
4. В файле error.php, который находится в папке templates/system стерла всё содержимое и вместо этого написала:
        
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" XML : lang="<? php echo $this->language; ?>" lang="<?php echo $this-> language; ?>" dir="<? php echo $this->direction; ?>">
<head>
</head>
<body>
<?php
if  ($this->_error->get('code') == '404') {
header("HTTP/1.0 404 Not Found");
header('Location: /index.php?option=com_content&view=article&id=2');
exit;
}
?>
</body>
</html>
5. этот же error.php скопировала в /templates/мой-шаблон/
РЕЗУЛЬТАТ:
Работает, выводит мою страницу 404 для неверных урлов сайта. кроме урлов VirtueMart.

НО страница 404 отдает код 200 ок.
Как решить? И как сделать для VirtueMart?



« Последнее редактирование: 29.12.2016, 15:47:09 от kovshenya » Записан
Stasweb
Живу я здесь
******

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

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



« Ответ #7 : 29.12.2016, 17:34:45 »

Как я понял при попытки вывести страницу 404 с VirtueMart не предусмотрено разработчиком.
Так как код с файла  error.php рабочий и при Joomla урлах работает а при VirtueMart - овских нет а просто редиректит на главную и это скорее и есть решение разработчиков.
Записан
kovshenya
Новичок
*

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

Сообщений: 8


« Ответ #8 : 29.12.2016, 18:30:48 »

Как я понял при попытки вывести страницу 404 с VirtueMart не предусмотрено разработчиком.
Так как код с файла  error.php рабочий и при Joomla урлах работает а при VirtueMart - овских нет а просто редиректит на главную и это скорее и есть решение разработчиков.

Спасибо!
Записан
kovshenya
Новичок
*

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

Сообщений: 8


« Ответ #9 : 29.12.2016, 18:37:19 »

С VirtueMart все понятно.

Только что решила проблему, когда страница 404 отдает код 200 (возврат HTTP-кода 200 вместо 404 Not Found) так:
Вместо редиректа через заголовок Location, перенаправляю «свою страницу 404» браузеру, то есть:
В файле error.php в /templates/мой-шаблон/ сделала так:
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<head>
</head>
<body>
<?php
if  ($this->_error->get('code') == '404') {
header("HTTP/1.0 404 Not Found");
$url=JURI::root()."index.php?option=com_content&view=article&id=2";
$data = file_get_contents($url) or die("Cannot open URL");
    echo $data;
}
?>
</body>
</html>
И ура:
 HTTP/1.1 404 Not Found
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

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