4

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

4

3 回答 3

8

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

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

    Redirect 200 /404
    ErrorDocument 404 /404
    

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

如果这不起作用,那无疑是由于重写。因此,如果是这种情况,请在 .htaccess 文件中的前 2 行下方但在任何其他重写行上方添加:

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

于 2013-02-26T12:11:26.450 回答
2

我想你可以在下面使用这个简单的代码到 PHP 中:

header("HTTP/1.1 200 OK");

你可以测试一下。

于 2013-02-26T07:27:03.753 回答
1

我用这个:

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

这段代码必须放在 .php 文件顶部的第一行代码中。搜索引擎、爬虫、浏览器和任何访问该站点的人都会将错误文档 404 页面视为标题 200。

Header 200 表示页面存在。Google 将抓取标题状态为 200 的网站并将其编入索引。

于 2017-11-24T04:36:26.583 回答