如何为drupal添加状态代码410以删除内容以改善SEO?

时间:2018-02-28 12:13:14

标签: drupal seo http-status-code-404 http-status-code-410

我们有一个基于drupal的工作板,每隔几天通过自动导入更新工作列表,并在此过程中删除一些工作。

谷歌搜索控制台显示页面索引页面的错误 - 因为URL返回404状态。

我认为解决方案应该是在已删除内容的网址上返回410代码。

有没有人知道如何实现这个目标?

1 个答案:

答案 0 :(得分:1)

最好的方法不是删除内容而只是取消发布内容,如果你的节点状态= 0,你可以添加标题410 您可以使用hook_boot来实现类似的功能,但这不是完美的方式:

function MYMODULENAME_boot(){
  if(preg_match('#^\/node\/[0-9]+$#', request_uri())) { 
        list(, $nid) = explode('/', trim(request_uri(),'/'));
        $registered = db_query('SELECT nid FROM node where nid = :nid', array(':nid' => $nid))->fetchField();
        if(empty($registered) || !is_numeric($registered)){
            drupal_add_http_header('Status', '410 Gone');
            exit;
        }
    }
}