PHP - manipulação de erro personalizada. Redireccionada 404 está a ser sequestrado pelo AVG Anti-Virus. Como parar?

StackOverflow https://stackoverflow.com/questions/166482

Pergunta

Eu tenho um site que usa a manipulação de erro 404 personalizada em PHP / Apache para exibir páginas específicas.
por exemplo. http://metachat.org/recent

Eu tenho a sensação de que esta é uma maneira ruim de fazer isso, mas de código eu herdei ...

Embora a página exibe corretamente na maioria dos navegadores, estou ficando uma situação em que o AVG Anti-Virus está sequestrando a página e redirecionando-o para um externo página 404.

Eu tentei forçar um cabeçalho (Status: 200 OK) usando o comando cabeçalho em PHP, mas se eu fizer um -I onda da página, recebo a seguinte ...

HTTP/1.1 404 Not Found
Date: Fri, 03 Oct 2008 11:43:01 GMT
Server: Apache/2.0.54 (Debian GNU/Linux) DAV/2 SVN/1.1.4 PHP/4.3.10-16 mod_ssl/2
.0.54 OpenSSL/0.9.7e
X-Powered-By: PHP/4.3.10-16
Status: 200 OK
Content-Type: text/html

Eu acho que a primeira linha é a linha de armadilhas AVG para seu redirecionamento forçado. Sem reescrever o software para usar Mod_rewrite (que eu realmente não entendo), como eu (em PHP) pode parar o "HTTP: / 1/1 404 Not Found"? Linha que está sendo enviada nos cabeçalhos ao exibir esta página

Graças.

Foi útil?

Solução

Não há nenhum outro do que usar a reescrita de URL (mod_rewrite) ou criar as páginas que faltam caminho. O que está acontecendo é que o cliente solicita uma página que não existe. O Apache é configurado para servir uma página especial sobre 404 erros, mas ainda envia o código de status 404, em seguida, armadilhas AVG isso.

Então, você poderia fazer algo como:

RewriteEngine On
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule (.*) index.php?missing_content=$1

Isso vai reescrever tudo o que não existe (e que, assim, dar um 404) para o seu index.php com o caminho URL na cadeia de consulta missing_content parâmetro

Outras dicas

Se o que você ganha é uma Page Not Found de erro, não torná-lo enviar status 200 OK. Por favor.

É um dos mais "truques" irritantes que as pessoas fazem por qualquer motivo. Se o usuário solicita a página não existe, diga isso a ele, bem como ao seu browser. E aos motores de busca, que de outra forma irá rastrear / cache o seu erro de página personalizada pensamento é a resposta real.

Se alguém tem algum software instalado que exibe outra coisa em vez de seu 404, que é o seu próprio problema e não tente combatê-lo fazer a sua mentira serviço para o navegador:)

Alguns navegadores não exibem o conteúdo de 404 páginas se que o conteúdo é muito pequeno. Se há maior conteúdo da página que eles fazem exibi-lo. Esta regra varia conforme o navegador. Tente adicionar mais conteúdo para sua página 404 e ver se isso ajuda.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top