É possível obter erros 404 mais conteúdo de volta?

2

Com o Apache, é possível enviar um cabeçalho de status 404, mas enviar conteúdo válido? Porque é isso que está acontecendo agora com link no a2hosting.com agora. Os registros da web mostram todas as conexões (além da homepage) como um status 404, mas depois os navegadores recebem conteúdo válido depois disso. Isso faz com que algo estranho aconteça. No IE, quando há Erros HTTP amigáveis ativados, ele está exibindo o 404. No IE, com os Erros HTTP amigáveis desativados, ele não está exibindo o 404 e está exibindo o conteúdo muito bem. Em todos os outros navegadores, eles parecem estar vendo conteúdo válido e ignorando o erro 404 que o servidor está gravando.

Esse problema costumava não ocorrer até 2 semanas atrás, e a única coisa que mudou em 14 meses no site foram as atualizações do sistema Apache como normal. (Admito que o cliente me pediu para editar o modelo da página inicial e mostrar uma mensagem aos usuários do IE sobre o problema.)

Eu quero provar que esta é uma configuração do Apache mal configurada. Eu baixei o banco de dados e os arquivos de hospedagem para este site WordPress, e agora vou solucionar problemas para ver se o mesmo código também tem um problema na minha estação de trabalho.

Mas a questão ainda permanece - o Apache pode retornar um cabeçalho de status 404 e ainda retornar XHTML válido depois disso?

    
por ServerChecker 27.03.2011 / 19:19

1 resposta

4

Sim. Um 404 não implica nenhum conteúdo. Você pode servir legitimamente um conteúdo de mais de 404, como um palpite sobre o que o usuário realmente queria, ou uma página de erro útil e bonita com links para seus documentos, etc. Nesse caso em particular, estou supondo que o front controller está configurado para usar URLs inteligentes, ou seja, que não há arquivo real para uma página chamada / page. Isso provavelmente significa que o Apache está configurado (com mod_rewrite) para enviar todas as solicitações de arquivos que não existem para /index.php (ou similar), que decide qual conteúdo será veiculado para a URL. Parece que não está definindo explicitamente o status como 200 depois de escolher o conteúdo correto. Eu não acho que isso é um problema de configuração do Apache, mas um problema de configuração do WordPress.

Edit: Talvez o seu arquivo .htaccess esteja enviando o arquivo ausente redirecionando para /index.php com um status 404 explícito.

    
por 27.03.2011 / 19:33