jianshan 发表于 2024-12-2 09:29:22

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

flarum/vendor/flarum/core/views/content.blade.php

@if ($isRobot)
{!! $content !!}
@else
<div id="flarum-loading" style="display: none">
{{ $translator->trans('core.views.content.loading_text') }}
</div>
@endif

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

补充添加isRobot变量方法
1.flarum/vendor/flarum/core/src/Http/WebApp/WebAppView.php的render方法中添加如下代码:
$this->view->share('isRobot', $this->isRobot());//添加蜘蛛识别
2.添加类方法
/**
   * 判断来源是否是蜘蛛
   * @return boolean
   */
    private function isRobot() {
      $agent= strtolower($_SERVER['HTTP_USER_AGENT']);
      if (!empty($agent)) {
            $spiderSite= array(
                "TencentTraveler",
                "Baiduspider+",
                "BaiduGame",
                "Googlebot",
                "msnbot",
                "Sosospider+",
                "Sogou web spider",
                "ia_archiver",
                "Yahoo! Slurp",
                "YoudaoBot",
                "Yahoo Slurp",
                "MSNBot",
                "Java (Often spam bot)",
                "BaiDuSpider",
                "Voila",
                "Yandex bot",
                "BSpider",
                "twiceler",
                "Sogou Spider",
                "Speedy Spider",
                "Google AdSense",
                "Heritrix",
                "Python-urllib",
                "Alexa (IA Archiver)",
                "Ask",
                "Exabot",
                "Custo",
                "OutfoxBot/YodaoBot",
                "yacy",
                "SurveyBot",
                "legs",
                "lwp-trivial",
                "Nutch",
                "StackRambler",
                "The web archive (IA Archiver)",
                "Perl tool",
                "MJ12bot",
                "Netcraft",
                "MSIECrawler",
                "WGet tools",
                "larbin",
                "Fish search",
            );
            foreach($spiderSite as $val) {
                $str = strtolower($val);
                if (strpos($agent, $str) !== false) {
                  return true;
                }
            }
      } else {
            return false;
      }
    }
页: [1]
查看完整版本: flarum对搜索引起太不友好,如何优化教程