我需要为 phpBB 论坛设置 html 状态代码。Google Webmaster Toolkit 显示了很多错误的状态代码,这对 SEO 和可用性都是不利的。
我搜索了很多,但找不到任何合适的答案。也许有人可以帮助我告诉我phpBB中是否有办法或者是否有插件可以实现这一点。
状态代码应根据以下情况而有所不同:
- 用户/线程已被删除 => 状态代码“410”(已消失)
- 线程已被移动 => 状态代码“301”(永久移动)
- 站点只能在登录时看到 => 状态代码“403”(禁止)
我需要为 phpBB 论坛设置 html 状态代码。Google Webmaster Toolkit 显示了很多错误的状态代码,这对 SEO 和可用性都是不利的。
我搜索了很多,但找不到任何合适的答案。也许有人可以帮助我告诉我phpBB中是否有办法或者是否有插件可以实现这一点。
状态代码应根据以下情况而有所不同:
我找到了一个解决方案,对于那些可能有相同需求的人,这里是解决方案。
阅读这个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');
}
这对我的问题有用。