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

master-smeta

  • Захожу иногда
  • 298
  • 10 / 0
Здравствуйте. Очередная проблема с кастомной страницей ошибки 404. Неправильная страница типа https://site.ru/errorurl.html выдает "белый лист" вместо страницы ошибки https://site.ru/404.html. При этом сама страница https://site.ru/404.html существует и работает нормально.
Страницу 404 делал стандартным методом:
1) добавил материал + пункт в меню
2) свой код в error.php:
Код
<?php
defined('_JEXEC') 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();
}
?>
Этот код работал 100%. Предположительно перестал работать после перевода сайта на https. Дядя Яндекс Гуглович ничего дельного подсказать не смог, поиск по форуму тоже.
P.S. пробовал вардампить:
var_dump($ch); возвращает resource(257) of type (curl)
var_dump($data); возвращает bool(false)

Что делать, куда копать?

P.S.2 Joomla 3.6.5 PHP 7.0
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Белый лист вместо 404. cURL + ssl?
« Ответ #1 : 21.02.2017, 11:42:13 »
Предположительно перестал работать после перевода сайта на https.
Видимо, так. Проверьте, что выдаст JUri::base().
Тем не менее, у меня к вам большой вопрос: зачем вы используете cURL для отображения внутренней страницы?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

master-smeta

  • Захожу иногда
  • 298
  • 10 / 0
Re: Белый лист вместо 404. cURL + ssl?
« Ответ #2 : 21.02.2017, 11:49:05 »
Видимо, так. Проверьте, что выдаст JUri::base().
Выдает строку с адресом. string(16) "https://site.ru/"
Тем не менее, у меня к вам большой вопрос: зачем вы используете cURL для отображения внутренней страницы?
Ну, типа сам не умею, пользуюсь чужими вариантами. Вариант с cURL'ом много где публикуют, в том числе и на этом форуме. Был еще вариант с file_get_content();
Есть еще какие-то варианты для создания собственной страницы 404?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Белый лист вместо 404. cURL + ssl?
« Ответ #3 : 21.02.2017, 11:58:49 »
Ну, дело может быть в самом сертификате. Можно еще поиграть с CURLOPT_SSLVERSION:
Добавьте эту строку и меняйте значение: 1, 2, 3...
Код: php-brief
curl_setopt($ch, CURLOPT_SSLVERSION , 3);
но говорят, что это небезопасно.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

master-smeta

  • Захожу иногда
  • 298
  • 10 / 0
Re: Белый лист вместо 404. cURL + ssl?
« Ответ #4 : 21.02.2017, 12:05:59 »
Попробовал. Если использовать $this->ch, то выдает Notice: Undefined property: JDocumentError::$ch и Warning: curl_setopt() expects parameter 1 to be resource, null given
Заменил $this->ch на $ch, попробовал 1...3... Без изменений. Белый лист.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Белый лист вместо 404. cURL + ssl?
« Ответ #5 : 21.02.2017, 12:54:29 »
У меня другой большой вопрос к чему вообще такие извращения. если нужен материал заместо ошибки, то можно сделать редирект, причем скажем для всех кроме ботов и админов. Если там модули нужны или текст другой, то это можно сделать прямо в eror.php. И да а что у вас происходит с другими ошибками, на сайте ведь не только 404.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

master-smeta

  • Захожу иногда
  • 298
  • 10 / 0
Re: Белый лист вместо 404. cURL + ssl?
« Ответ #6 : 21.02.2017, 13:19:08 »
У меня другой большой вопрос к чему вообще такие извращения. если нужен материал заместо ошибки, то можно сделать редирект, причем скажем для всех кроме ботов и админов. Если там модули нужны или текст другой, то это можно сделать прямо в eror.php. И да а что у вас происходит с другими ошибками, на сайте ведь не только 404.
Изначально задача стояла следующая: сделать собственную страницу ошибки 404. Именно для этой ошибки, чтобы хоть как-то попытаться "конвертировать" пользователей пришедших по "битой" ссылке. После долгих поисков и перебора различных вариантов остановился на указанном в первом посте. Все работало нормально. Правильно это было, или нет, главное что скрипт работал и решал поставленную задачу. А теперь перестал...
Получил Ваше сообщение в личку. Ваш код работает, спасибо! Если не возражаете - поделюсь в этой теме вашей ссылкой на решение. А так вообще было бы хорошо добавить этот вариант в FAQ на этом форуме, т.к. вопросы о 404 возникают тут довольно часто
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Белый лист вместо 404. cURL + ssl?
« Ответ #7 : 21.02.2017, 13:23:05 »
Да вариант то банальный и ничего нового в нем нет. Ну если хотите выложу ссылку. Хотя не большой любитель делиться в паблике
https://septdir.ru/blog/web/joomla-eror-page-with-visitor-redirect.html
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

master-smeta

  • Захожу иногда
  • 298
  • 10 / 0
Re: Белый лист вместо 404. cURL + ssl?
« Ответ #8 : 21.02.2017, 13:30:06 »
Да вариант то банальный и ничего нового в нем нет. Ну если хотите выложу ссылку. Хотя не большой любитель делиться в паблике
https://septdir.ru/blog/web/joomla-eror-page-with-visitor-redirect.html
Банальный то он может и банальный, для знающих людей. А я вот к таким не отношусь, да и не только я. В любом случае - Ваш способ мне помог. Спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Обновление 2.5.24 до 3.3.0. Ошибка 1062 (бд)

Автор Nikolay Blinov

Ответов: 39
Просмотров: 14137
Последний ответ 22.03.2023, 11:42:47
от asf2004
Ошибка Для просмотра этой информации неоk

Автор ModoRix

Ответов: 8
Просмотров: 1625
Последний ответ 05.10.2018, 18:43:36
от gg.tatarin
Не обновляется (не находит обновления)

Автор zahar_92

Ответов: 3
Просмотров: 3350
Последний ответ 17.11.2017, 07:30:48
от m337997
Ошибки при сохранении материала! - Joomla 3.0

Автор kronoss76

Ответов: 11
Просмотров: 1679
Последний ответ 19.07.2017, 07:00:36
от kronoss76
Joomla 3.7 и Akeeba Admin Tools PRO v4.1.3

Автор lgmax

Ответов: 1
Просмотров: 1244
Последний ответ 07.05.2017, 20:13:21
от Septdir