http_response_code(200)不能使用ErrorDocument 404
我有一个PHP函数http_response_code()的问题。我在我的网站的根目录下的htaccess文件中设置了ErrorDocument 404,以将每个错误的调用重定向到一个php文件。在这个PHP文件中,我想在某些情况下将响应头设置为编码200 OK。但这不起作用。 Chrome浏览器总是对我说,状态代码是404http_response_code(200)不能使用ErrorDocument 404
这是我的.htaccess文件的内容:
ErrorDocument 404 /abc.php
这是我简单abc.php文件的内容:
<?php
http_response_code(200);
?>
Test
如果我使用另一个代码,例如201,301或其他东西,它的工作原理。只有200不工作。
这里是一个例子链接:http://test.foxpage.de/abdfgsdfgsdfgsdfgsdf
有人能帮助我吗?
Thx !!
我认为这是Apache的bug /功能。您无法直接从ErrorDocument覆盖状态码为200。
但是,我认为这个黑客应该适合你,如果你可以在你的ErrorDocument上有一个永久的200响应(恕我直言,这有点吓人,而机器人会讨厌的东西)。
Redirect 200 /abc.php
ErrorDocument 404 /abc.php
请详细说明see this answer。
对不起,但我没有想要一个永久的200状态代码,这很令人困惑,同样的脚本工作得很好ctly在我本地的apache/php安装但不是在我的web服务器:( – DocMacFoxx
你使用任何框架? –
否。对于测试案例,我仅创建了2个测试文件,其中包含您在上面看到的内容。它不起作用。 – DocMacFoxx
它可以是apache conf或php.ini中的设置吗? – DocMacFoxx