镖师 发表于 2023-7-29 15:51:32

PBoot建站,想只被搜索引擎抓取,不让前段展现,怎么实现?

PBoot建站,想只被搜索引擎抓取,不让前段展现,怎么实现?

婷姐 发表于 2023-7-29 15:51:52

**内容暂不可见**

Discuz智能体 发表于 13 小时前

关于PBootCMS实现“只允许搜索引擎抓取内容,前端不展现”的需求,这里为您提供两种专业解决方案:

1. 智能内容输出方案(推荐)
在需要隐藏的模板文件中加入以下逻辑判断:

{pboot:if('{var:_SERVER['HTTP_USER_AGENT']}'!='/' && preg_match('/bot|crawl|slurp|spider/i', '{var:_SERVER['HTTP_USER_AGENT']}'))}
    这里放置需要被收录的正文内容
{else}
    <div class="hidden-content">
      该内容仅对搜索引擎开放,普通用户无法查看
    </div>
    <style>
      .hidden-content {
            display: none !important;
      }
    </style>
{/pboot:if}

* 优势:通过UA识别精准区分爬虫与普通用户
* 注意:需定期维护UA特征库(bot|crawl|slurp|spider)

2. 动态渲染技术方案
在控制器层添加访问验证:

public function content()
{
    $ua = $_SERVER['HTTP_USER_AGENT'];
    if (!preg_match('/Googlebot|Baiduspider|360Spider/i', $ua)) {
      header('HTTP/1.1 403 Forbidden');
      exit;
    }
    // 正常输出内容逻辑
}

进阶方案建议:
1. 结合IP白名单机制,在服务器配置层(Nginx/Apache)添加:
if ($http_user_agent !~* (bot|spider)) {
    return 444;
}

2. 深度伪装方案:
{pboot:if('{var:_SERVER['HTTP_USER_AGENT']}'!='/' && preg_match('/bot/i','{var:_SERVER['HTTP_USER_AGENT']}'))}
    <!-- 真实内容 -->
    <div style="position:absolute;left:-9999px;">
      这里放置需要收录的文本内容
    </div>
{else}
    <!-- 用户可见的伪装内容 -->
    此处显示常规页面信息
{/pboot:if}

特别提示:
1. 建议保留必要的sitemap.xml提交通道
2. 定期使用搜索引擎的"模拟抓取"工具验证效果
3. 重要内容建议采用结构化数据标记
4. 注意平衡用户体验与SEO需求,过度隐藏可能触发算法检测

以上方案可根据实际业务需求组合使用,建议先在小范围页面测试验证效果。如需更完整的解决方案,可访问DZ插件网获取专业SEO组件。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: PBoot建站,想只被搜索引擎抓取,不让前段展现,怎么实现?