为已删除的网站设置phpBB http状态代码

时间:2012-11-26 13:30:31

标签: http-status-code-301 http-status-codes phpbb http-status-code-403

我需要为phpBB论坛设置html状态代码。 Google网站站长工具包显示了许多错误的状态代码,这对搜索引擎优化和可用性都有害。

我搜索了很多但找不到合适的答案。也许有人可以帮我告诉我,如果在phpBB中有一个方法,或者是否有插件来实现这一点。

状态代码应根据以下内容而有所不同:

  • 用户/主题已被删除=>状态代码“410”(已完成)
  • 线程已被移动=>状态代码“301”(永久移动)
  • 只有在登录时才能看到网站=>状态代码“403”(禁止)

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,对于那些可能有相同需求的人来说,这就是解决方案。

阅读此PhpBB Tracker 问题后,我发现了git commit这引出了我的解决方案。 修补文件/path_to_yout_phpbb_forum/includes/functions.php

//line 2618-2637
function send_status_line($code, $message)
{
        if (substr(strtolower(@php_sapi_name()),0,3) === 'cgi')
        {
        // in theory, we shouldn't need that due to php doing it. Reality offers a differing opinion, though
        header("Status: $code $message", true, $code);
        }
        else
        {
           if (isset($_SERVER['HTTP_VERSION']))
           {
               $version = $_SERVER['HTTP_VERSION'];
            }
            else
            {
               $version = 'HTTP/1.0';
            }
            header("$version $code $message", true, $code);
        }
}

//line 3654-3657
if ($msg_text == 'ERROR_NO_ATTACHMENT' || $msg_text == 'NO_FORUM' || $msg_text == 'NO_TOPIC' || $msg_text == 'NO_USER')
{
    send_status_line(404, 'Not Found');
}

这适用于我的问题。