查看: 50|回复: 0

[Flarum] flarum对搜索引起太不友好,如何优化教程

[复制链接]

178

主题

48

回帖

995万

积分

管理员

Rank: 9Rank: 9Rank: 9

UID
1
阅读权限
200
积分
9955389
威望
-1
金币
9954926

最佳新人

鲜花(0) 鸡蛋(0)
发表于 2024-12-2 09:29:22 | 显示全部楼层 |阅读模式
flarum/vendor/flarum/core/views/content.blade.php

  1. @if ($isRobot)
  2. {!! $content !!}
  3. @else
  4. <div id="flarum-loading" style="display: none">
  5.   {{ $translator->trans('core.views.content.loading_text') }}
  6. </div>
  7. @endif
复制代码


判断如果是搜索引擎访问,就直接输出内容就行了。
至于isRobot这个变量,自己定义一个在 flarum/vendor/flarum/core/src/Http/WebApp/WebAppView.php

补充添加isRobot变量方法
1.flarum/vendor/flarum/core/src/Http/WebApp/WebAppView.php的render方法中添加如下代码:
  1. $this->view->share('isRobot', $this->isRobot());//添加蜘蛛识别
复制代码

2.添加类方法
  1. /**
  2.      * 判断来源是否是蜘蛛
  3.      * @return boolean [description]
  4.      */
  5.     private function isRobot() {
  6.         $agent= strtolower($_SERVER['HTTP_USER_AGENT']);
  7.         if (!empty($agent)) {
  8.             $spiderSite= array(
  9.                 "TencentTraveler",
  10.                 "Baiduspider+",
  11.                 "BaiduGame",
  12.                 "Googlebot",
  13.                 "msnbot",
  14.                 "Sosospider+",
  15.                 "Sogou web spider",
  16.                 "ia_archiver",
  17.                 "Yahoo! Slurp",
  18.                 "YoudaoBot",
  19.                 "Yahoo Slurp",
  20.                 "MSNBot",
  21.                 "Java (Often spam bot)",
  22.                 "BaiDuSpider",
  23.                 "Voila",
  24.                 "Yandex bot",
  25.                 "BSpider",
  26.                 "twiceler",
  27.                 "Sogou Spider",
  28.                 "Speedy Spider",
  29.                 "Google AdSense",
  30.                 "Heritrix",
  31.                 "Python-urllib",
  32.                 "Alexa (IA Archiver)",
  33.                 "Ask",
  34.                 "Exabot",
  35.                 "Custo",
  36.                 "OutfoxBot/YodaoBot",
  37.                 "yacy",
  38.                 "SurveyBot",
  39.                 "legs",
  40.                 "lwp-trivial",
  41.                 "Nutch",
  42.                 "StackRambler",
  43.                 "The web archive (IA Archiver)",
  44.                 "Perl tool",
  45.                 "MJ12bot",
  46.                 "Netcraft",
  47.                 "MSIECrawler",
  48.                 "WGet tools",
  49.                 "larbin",
  50.                 "Fish search",
  51.             );
  52.             foreach($spiderSite as $val) {
  53.                 $str = strtolower($val);
  54.                 if (strpos($agent, $str) !== false) {
  55.                     return true;
  56.                 }
  57.             }
  58.         } else {
  59.             return false;
  60.         }
  61.     }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表