PHP - Пользовательская обработка ошибок.Перенаправленный 404 захвачен антивирусом AVG.Как остановиться?

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

Вопрос

У меня есть веб-сайт, который использует пользовательскую обработку ошибок 404 в PHP / Apache для отображения определенных страниц.
например , http://metachat.org/recent

У меня такое чувство, что это плохой способ сделать это, но это код, который я унаследовал...

Хотя страница корректно отображается в большинстве браузеров, я сталкиваюсь с ситуацией, когда антивирус AVG перехватывает страницу и перенаправляет ее на внешнюю страницу 404.

Я пытался принудительно ввести заголовок (Status:200 OK) с помощью команды header в PHP, но если я выполняю curl - I страницы, я получаю следующее...

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

Я предполагаю, что первая строка - это строка AVG traps для принудительного перенаправления.Не переписывая программное обеспечение для использования Mod_rewrite (что я действительно не понимаю), как я могу (в PHP) остановить отправку строки "HTTP:/1/1 404 Не найдено" в заголовках при отображении этой страницы?

Спасибо.

Это было полезно?

Решение

Нет другого способа, кроме как использовать перезапись URL (mod_rewrite) или создать недостающие страницы.Что происходит, так это то, что клиент запрашивает страницу, которая не существует.Apache настроен на обслуживание специальной страницы при ошибках 404, но он по-прежнему отправляет код состояния 404, затем AVG перехватывает его.

Итак, вы могли бы сделать что-то вроде:

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

Это перепишет все, что не существует (и, таким образом, даст 404) вашему index.php с URL-адресом в параметре строки запроса missing_content

Другие советы

Если то, что вы получаете, является Страница Не Найдена ошибка, не надо сделайте так, чтобы он отправлял статус 200 OK.Пожалуйста.

Это один из самых раздражающих "трюков", которые люди делают по какой-либо причине.Если страница, которую запрашивает пользователь, не существует, сообщите об этом ему, а также его браузеру.И для поисковых систем, которые в противном случае будут сканировать / кэшировать вашу пользовательскую страницу с ошибкой, думая, что это фактический ответ.

Если у кого-то установлено какое-то программное обеспечение, которое отображает что-то другое вместо вашего 404, это его собственная проблема, и не пытайтесь бороться с ней, заставляя ваш сервис лгать браузеру :)

Некоторые браузеры не отображают содержимое 404 страниц, если это содержимое довольно мало.Если содержание страницы больше, они действительно отображают его.Это правило варьируется в зависимости от браузера.Попробуйте добавить больше контента на свою страницу 404 и посмотрите, поможет ли это.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top