Nem létező oldalra 500 internal server error üzenetet kapok

Válasz

Ezt a joomlában található hiba okozza, és csak Fast CGI-s tárhelyeknél jön elő, magát a hibát az okozza, hogy a program a CGI számára rosszul küldi ki a headert a sendHeadrs() függvényben.
Sajnos e hibát a joomla fejlesztőcsapatának a mai napig nem sikerült kijavitaniuk, pedig maga a javitás nem egy hatalmas munka.

Mi két megoldást is kinálunk a hiba javitására:

  • Az első és egyszerübb:
    Töltsd le ezt a fájlt:     Csomagold ki, majd FTP-n belépve keresd meg a következő fájlt
    ../libraries/joomla/environment/response.php  majd írd felül a kicsomagolttal.


  • A másik megoldás a kézzel történő modositás:
    Keressük meg a  ../libraries/joomla/environment/response.php fájlt, majd nyissuk meg szerkesztésre, és a fenti kódot cseréljük le az alsó kódra.

Régi kód:

 function sendHeadersOld()
{
if (!headers_sent())
{
foreach ($GLOBALS['_JRESPONSE']->headers as $header)
{
if ('status' == strtolower($header['name']))
{
// 'status' headers indicate an HTTP status, and need to be handled
// slightly differently
header(ucfirst(strtolower($header['name'])) . ': ' . $header['value'], null,
(int) $header['value']);
} else {
header($header['name'] . ': ' . $header['value']);
}
}
}
}

Új kód:

 function sendHeaders()
{
if (!headers_sent())
{
foreach ($GLOBALS['_JRESPONSE']->headers as $header)
{
if ('status' == strtolower($header['name']))
{
// 'status' headers indicate an HTTP status, and need to be handled
// slightly differently

$attribute = ucfirst(strtolower($header['name'])) . ': ' . $header['value'];

if (substr(php_sapi_name(), 0, 8) == 'cgi-fcgi') {
$attribute = str_replace("Status:", "HTTP/1.1", $attribute);
}
header($attribute, null, (int) $header['value']);
} else {
header($header['name'] . ': ' . $header['value']);
}
}
}
}


Kategória