我的php函数http_response_code()有问题。我已将ErrorDocument 404设置在我网站根目录下的htaccess文件中,以将每个错误的调用重定向到php文件。在这个php文件中,我想在某些情况下将响应的头设置为200 OK。但这并不奏效。 Chrome总是告诉我状态代码是404.
这是我的.htaccess文件的内容:
ErrorDocument 404 /abc.php
这是我简单的abc.php文件的内容:
<?php
http_response_code(200);
?>
Test
如果我使用其他代码,例如201,301或其他什么,它的工作原理。只有200不起作用。
以下是示例的链接:http://test.foxpage.de/abdfgsdfgsdfgsdfgsdf
有人可以帮助我吗?
THX !!
答案 0 :(得分:0)
我认为这是Apache的bug /功能。您无法直接从ErrorDocument覆盖状态代码为200.
但是,我认为这个hack应该适合你,如果你可以忍受在你的ErrorDocument上有一个永久的200响应(恕我直言,有点恐怖,以及机器人会讨厌的东西)。
Redirect 200 /abc.php
ErrorDocument 404 /abc.php
请see this answer了解详情。
答案 1 :(得分:0)
这在第一行有效:How can I replace Apache HTTP code 404 to 200
<?php header("Status: 200 OK"); ?>
此代码必须放在第一行代码的.php文件顶部。搜索引擎,搜寻器,浏览器以及访问该网站的任何人都将看到错误文档404页作为标头200。
标题200表示该页面存在。 Google将抓取标题为200的网站并将其编入索引。