matomo/searchengine-and-social-list

Matomo(前身为Piwik)使用的搜索引擎和社交网络定义

3.14.0 2023-01-20 11:12 UTC

README

这些是由社区贡献的搜索引擎和社交网络检测列表的定义,由Matomo(前身为Piwik)维护和使用,Matomo是领先的开放源代码网站分析平台。

社交网络

社交网络在Socials.yml文件中以YAML格式定义

定义包含社交网络名称以及一个或多个URL列表

"My Social Network":
  - my-social-network.com
  - mysocial.org

搜索引擎

搜索引擎在SearchEngines.yml文件中以YAML格式定义

搜索引擎的定义包含几个参数,这些参数是必须的,以便能够检测出给定URL中包含哪个搜索引擎和哪些搜索关键词。

这些参数包括

  • 引擎名称
  • 引擎URL
  • 请求参数(或正则表达式),可用于获取搜索关键词
  • 隐藏的关键词路径
  • 回链模式,可用于创建包含关键词的有效回链
  • 可能用于将关键词转换为UTF-8的字符集

对于每个搜索引擎(名称),可以定义多个配置。每个配置都需要包含一个或多个URL,一个或多个参数/正则表达式,并且可能包含一个回链和一个或多个字符集。

配置参数

urls

每个配置都需要包含一个或多个URL。请只定义主机名。您可以使用{}作为子域或顶级域名中国家代码短语的占位符。

  • {}.searchengine.com也会匹配de.searchengine.comnl.searchengine.com
  • searchengine.{}也会匹配searchengine.desearchengine.nl

注意

  • 对于顶级域名,只有{}也会匹配组合顶级域名,如co.uk。(完整列表com.*, org.*, net.*, co.*, it.*, edu.*
  • 第一个URL将被用于图标,因此最受欢迎/最具代表性的URL应该放在那里

params

每个配置都需要包含一个或多个params。一个param是可能存在于URL中的请求参数名称。由于许多搜索引擎不使用查询参数来处理关键词,而是将它们包含在URL结构中,因此也可以定义一个正则表达式。正则表达式需要用'/'括起来

SearchEngine:
  -
    urls:
      - searchengine.com
    params:
      - q
      - '/search\/[^\/]+\/(.*)/'

上面的示例首先尝试使用请求参数q获取关键词。如果不可用,则使用正则表达式'/search\/[^\/]+\/(.*)/'来获取。这个正则表达式会匹配像http://searchengine.com/search/web/matomo这样的URL

backlink

回链将被用于生成包含给定关键词的指向搜索引擎的链接。回链可以按配置定义,并需要包含{k}作为关键词的占位符。

SearchEngine:
  -
    urls:
      - searchengine.com
    params:
      - q
    backlink: '/search?q={k}'

对于上面的配置,生成的回链将看起来像searchengine.com/search?q=matomo(假设matomo是关键词)。

注意

回链始终使用此配置块中定义的第一个URL生成。

hiddenkeyword

越来越多的搜索引擎出于隐私考虑开始隐藏引用中的关键词。使用hiddenkeyword可以定义搜索引擎是否从可能不包含/提供关键词的路径中引用。如果搜索引擎始终从路径/do/search引用,则应添加该路径。如果路径可能变化,可以添加以/开头和结尾的字符串正则表达式,例如:/\/search[0-9]*/

注意:将匹配的路径还将包括引用者的查询字符串和哈希。因此,如果引用者可能包含查询,您可能可以使用正则表达式如/search(\?.*)?/

SearchEngine:
  -
    urls:
      - searchengine.com
    params: []
    hiddenkeyword:
      - '/^$/'
      - '/'
      - '/search'

上述配置将允许searchengine.comsearchengine.com/searchengine.com/search使用空关键词。

字符集

如果搜索引擎使用的是除UTF-8以外的字符集,则可以定义字符集。提供的字符集将用于将任何检测到的搜索关键词转换为UTF-8。

简单定义

一个搜索引擎的简单定义可能如下所示

SearchEngine:
  -
    urls:
      - searchengine.com
      - search-engine.org
    params:
      - q
      - as_q

上面的例子将匹配主机searchengine.comsearch-engine.org,并使用请求参数qas_q(按此顺序)来检测搜索关键词。

多个配置

具有多个配置的搜索引擎的简单定义可能如下所示

SearchEngine:
  -
    urls:
      - searchengine.com
    params:
      - as_q
  -
    urls:
      - search-engine.org
    params:
      - q

上面的定义将再次匹配主机searchengine.comsearch-engine.org。然而,请求参数q将专门用于search-engine.org,而请求参数as_q将专门用于searchengine.com

完整定义

一个搜索引擎的完整定义(包括所有可选参数)可能如下所示

SearchEngine:
  -
    urls:
      - searchengine.com
    params:
      - q
    backlink: '/search?q={k}'
    charsets:
      - windows-1250
  -
    urls:
      - search-engine.org
    params:
      - as_q
  -
    urls:
      - search-engine.fr
    params: []
    hiddenkeyword:
      - '/'
      - '/^search.*/

在这种情况下,仅定义了第一个配置的反向链接和字符集。这意味着没有为search-engine.org设置反向链接或字符集。

贡献

我们欢迎您的贡献和Pull请求,请访问github.com/matomo-org/searchengine-and-social-list