0

我需要为 phpBB 论坛设置 html 状态代码。Google Webmaster Toolkit 显示了很多错误的状态代码,这对 SEO 和可用性都是不利的。

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

状态代码应根据以下情况而有所不同:

  • 用户/线程已被删除 => 状态代码“410”(已消失)
  • 线程已被移动 => 状态代码“301”(永久移动)
  • 站点只能在登录时看到 => 状态代码“403”(禁止)
4

1 回答 1

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');
}

这对我的问题有用。

于 2013-04-07T16:08:02.237 回答