Джумла 3.1. Вместо 404 500

gulnaz
На сайте с 19.02.2009
Offline
108
1088

Подскажите пожалуйста, почему джумла 3.1. вместо 404 ошибки в некоторых случаях дает ответ сервера 500. Пересмотрела весь интернет, решения не нашла, хостинг говорит что вина джумлы.

site.ru/123 отдает 404

site.ru/bani/wer отдает 500

Возьму два интересных проекта в продвижение. На биржах ссылок работаю на ваших аккаунтах.
Mad_Man
На сайте с 10.11.2008
Offline
162
#1

Серьёзно? В гугле по "http code 500 joomla" совсем-совсем ничего нету?

gulnaz
На сайте с 19.02.2009
Offline
108
#2

В общем, часть проблемы решила созданием своей страницы 404 ошибки, sit.ru/doma-iz-brusa/odnoetazhnye-doma/40 HTTP/1.1 200 OK и открывается страница sit.ru/doma-iz-brusa/odnoetazhnye-doma

sit.ru/doma-iz-brusa/odnoetazhnye-doma/вав а так 404.

Файл еррорюпхп defined( '_JEXEC' ) or die( 'Restricted access' );

$app = JFactory::getApplication();

$yjsg_params = $app->getTemplate(true)->params;

$template = $this->template;

$default_color = $yjsg_params->get("default_color");

$default_font_family = $yjsg_params->get("default_font_family");

$logo_height = $yjsg_params->get("logo_height");

$logo_width = $yjsg_params->get("logo_width");

$css_width = $yjsg_params->get("css_width");

$default_font = $yjsg_params->get("default_font");

$css_widthdefined = $yjsg_params->get("css_widthdefined");

?>

<!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><title><?php echo $this->error->getCode(); ?> - <?php echo $this->title; ?></title>

</head>

<body><?php

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'); // 20 - Ид твоей страницы

$data = curl_exec($ch);

curl_close($ch);

echo $data;

die();}

?>

</body>

</html>

Mad_Man
На сайте с 10.11.2008
Offline
162
#3

Быдлокод. Посылать хэдеры нужно до вывода любого байта текста. Код выше будет работать только до тех пор, пока буфер, установленный в php.ini, не переполняется. Да и два раза заголовки ошибок слать не нужно.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий