如何将Apache HTTP代码404替换为200

时间:2013-02-26 07:19:16

标签: apache http httpresponse

我不希望网站的apache返回任何HTTP代码404,
原因是认证委员会将扫描所有网站,
许多javascript链接和一些事件将导致404代码,
事实上,这些链接是有效的,但检查器会误判错误。
所以,我想阻止apache返回HTTP代码404,
如何配置apache返回HTTP cods 200而不是404并显示我的定义错误页面?

3 个答案:

答案 0 :(得分:6)

来自:http://www.askapache.com/htaccess/apache-status-code-headers-errordocument.html

  1. 在名为404的主Web目录中创建一个空白文件。可以为空白。
  2. 将此添加到.htaccess文件中:

    Redirect 200 /404
    ErrorDocument 404 /404
    
  3. 这会将Apache ErrorDocument更改为/ 404文件。但是Redirect行导致请求/ 404发出200 OK响应而不是404.

    如果这不起作用,则无疑会重写。因此,如果是这种情况,请将这个添加到前两行,但高于.htaccess文件中的任何其他重写行:

    Options FollowSymLinks ExecCGI
    
    RewriteEngine On
    RewriteBase /
    
    # If the requested file doesnt exist
    # and if the requested file is not an existing directory
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^[^4]* /404 [L,S=4000]
    

    更详细地解释:http://www.askapache.com/htaccess/apache-status-code-headers-errordocument.html#Automate_ErrorDocument_Triggering

答案 1 :(得分:2)

我认为你可以使用下面的代码简单地编写PHP:

header("HTTP/1.1 200 OK");

你可以测试它。

答案 2 :(得分:1)

我用这个:

<?php header("Status: 200 OK"); ?>

此代码必须放在第一行代码中的.php文件的顶部。搜索引擎,抓取工具,浏览器和访问该网站的任何人都会将errordocument 404页面视为标题200.

标题200表示页面存在。 Google将对标题状态为200的网站进行抓取和索引。