如何解决HTTP-404标头似乎在服务器日志中不起作用
| 我已经建立了一个动态网站并修改了.htaccess文件中的静态URL,并且需要为SEO创建一个404页。header(\"HTTP/1.0 404 Not Found\");
当数据库中没有匹配的链接时,我正在使用上面的PHPheader()
函数,但是当我检查服务器日志时,这似乎不起作用,并给出了HTTP 200 OK
状态代码。
这是服务器日志中的行:
[My IP] - - [12/Jun/2011:01:47:38 +0300] \"GET /4k.html HTTP/1.1\" 200 3284 \"-\" \"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.30 (KHTML,like Gecko) Chrome/12.0.742.91 Safari/534.30\"
4k.html
是不存在的链接。
我想念什么吗?
解决方法
据我了解,您正在将所有文件重写为一个PHP文件,以便PHP可以读取它并执行服务页面所需的操作。这意味着从本质上讲,Apache对404页的处理将被覆盖。此时,由您的PHP文件决定是否可以提供页面或显示404。据Apache所知,该请求导致HTTP代码为200,因为在触发PHP进行解析之后,该请求没有任何作用。脚本并将输出提供给请求它的客户端。
在您的PHP脚本中,您将进行检查以查看该页面是否存在。如果该页面存在,则显示该页面,否则,显示404消息。在您知道它是404的位置将putting5放入您的PHP文件中,它将向客户端发送404标头,因此正确完成了此操作。要验证它是否已正确发送,触发404(通过输入伪造的url)并在Chrome Developer工具中查看请求详细信息,您应该在Response标头下看到正在发送404,而Apache日志则显示200 。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。