Nesta documentação
http://docs.joomla.org/Creating_a_Custom_404_Error_Page
há conselhos para redirecionar para uma página 404 personalizada redirecionando. Isso leva à exibição da página final em um código do cabeçalho 200.
No entanto, este artigo sobre ferramentas para webmasters
https://support.google.com/webmasters/answer/2409443?ctx=MCE&ctx=S4
requer que a página de erro 404 retorne um cabeçalho 404.
Eu tentei incluir o Joomla novamente na página de erro. Além de usar o curl para obter a página personalizada, há algo mais que eu possa fazer?
Isso é chamado de soft 404
enquanto você está redirecionando para um URL diferente. Portanto, a resposta 200 após o redirecionamento está correta, o que, sim, causa problemas para os robôs do mecanismo de pesquisa ao determinar se o conteúdo não foi encontrado :
Eu ia sugerir, forçando um 404
código de resposta para header
chamada em error.php
arquivo como este:
if (($this->error->getCode()) == '404') {
header('Location: /index.php?option=com_content&view=article&id=75', true, 404);
exit;
}
No entanto, isso não funcionará - principalmente porque o comportamento do navegador não deve ir mais longe ou indefinido tanto quanto eu sei (veja 4xx erros , 404 ) que entra em conflito com location
. (Também alguns Chrome & IE's et al. Ignoram o conteúdo fornecido pelo servidor quando veem um código 404 e apresentam suas próprias "sugestões").
Portanto, parece que, para obter conteúdo personalizado de um artigo e reter um 404, você precisa obtê-lo e incluí-lo em sua página de erro (presumo que você queira fazer isso para obter seu modelo, estrutura de menu etc.) ).
Aqui está o que acabei colocando no topo do meu error.php
<?php
/**
* @package Joomla.Site
* @subpackage Template.system
* * @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
if (($this->error->getCode()) == '404') {
header('HTTP/1.0 404 Not Found');
$ch = curl_init( JURI::root() . '/404');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
echo curl_exec($ch);
exit;
}
Correção bastante fácil para URLs 404 personalizadas personalizadas do Joomla que não retornam o cabeçalho 404:
https://www.joomlashack.com/blog/joomla/custom-404/
Visível em: https://www.its-acoustique.fr/john-doe