Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-自定义错误处理。重定向404被AVG反病毒软件劫持。如何停止?_Php_Http Headers_Http Status Code 404_Antivirus - Fatal编程技术网

PHP-自定义错误处理。重定向404被AVG反病毒软件劫持。如何停止?

PHP-自定义错误处理。重定向404被AVG反病毒软件劫持。如何停止?,php,http-headers,http-status-code-404,antivirus,Php,Http Headers,Http Status Code 404,Antivirus,我有一个网站,它使用PHP/Apache中的自定义404错误处理来显示特定页面。 e、 g 我觉得这是一种不好的方法,但这是我继承的代码 虽然该页面在大多数浏览器上都能正确显示,但我发现AVG Anti-Virus正在劫持该页面并将其重定向到非现场404页面 我曾尝试在PHP中使用header命令强制设置标题状态:200 OK,但是如果我对页面执行curl-I,我会得到以下结果 HTTP/1.1 404 Not Found Date: Fri, 03 Oct 2008 11:43:01 GMT

我有一个网站,它使用PHP/Apache中的自定义404错误处理来显示特定页面。 e、 g

我觉得这是一种不好的方法,但这是我继承的代码

虽然该页面在大多数浏览器上都能正确显示,但我发现AVG Anti-Virus正在劫持该页面并将其重定向到非现场404页面

我曾尝试在PHP中使用header命令强制设置标题状态:200 OK,但是如果我对页面执行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陷阱线,用于强制重定向。 如果不重写软件以使用Mod_rewrite(我不太理解),我如何在PHP中停止显示此页面时在标题中发送的HTTP:/1/1 404 Not Found行


谢谢

除了使用URL重写mod_rewrite或创建缺少的页面之外,没有其他方法。发生的情况是,客户端请求一个不存在的页面。Apache被配置为在出现404错误时提供一个特殊页面,但它仍然发送404状态代码,然后AVG捕获该代码

所以,你可以这样做:

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

这将重写所有不存在的内容,并因此在缺少内容查询字符串参数的URL路径中为index.php提供404。除了使用URL重写mod_rewrite或创建缺少的页面之外,没有其他方法。发生的情况是,客户端请求一个不存在的页面。Apache被配置为在出现404错误时提供一个特殊页面,但它仍然发送404状态代码,然后AVG捕获该代码

所以,你可以这样做:

RewriteEngine On
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule (.*) index.php?missing_content=$1
这将重写所有不存在的内容,并因此在缺少内容查询字符串参数的URL路径中为index.php提供404。如果您得到的是页面未找到错误,请不要使其发送状态200 OK。求你了

不管出于什么原因,这都是人们最讨厌的把戏之一。如果页面用户请求不存在,请告诉他以及他的浏览器。对于搜索引擎来说,这将抓取/缓存您的自定义错误页面,认为这是实际的响应

如果有人安装了显示其他内容而不是404的软件,这是他自己的问题,不要试图与之抗争,让你的服务欺骗浏览器:

如果你得到的是一个页面未找到错误,不要让它发送状态200 OK。求你了

不管出于什么原因,这都是人们最讨厌的把戏之一。如果页面用户请求不存在,请告诉他以及他的浏览器。对于搜索引擎来说,这将抓取/缓存您的自定义错误页面,认为这是实际的响应


如果有人安装了一些显示其他内容而不是404的软件,这是他自己的问题,不要试图与之抗争,让你的服务对浏览器撒谎:

如果404页面的内容很小,一些浏览器就不会显示该页面的内容。如果有更大的页面内容,他们会显示出来。此规则因浏览器而异。尝试向404页面添加更多内容,看看这是否有帮助。

如果404页面的内容非常小,则某些浏览器不会显示该页面的内容。如果有更大的页面内容,他们会显示出来。此规则因浏览器而异。尝试向404页面添加更多内容,看看是否有帮助