matomo / searchengine-and-social-list
Matomo(前身为Piwik)使用的搜索引擎和社交网络定义
Replaces
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.com
或nl.searchengine.com
searchengine.{}
也会匹配searchengine.de
或searchengine.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.com
、searchengine.com/
和searchengine.com/search
使用空关键词。
字符集
如果搜索引擎使用的是除UTF-8以外的字符集,则可以定义字符集。提供的字符集将用于将任何检测到的搜索关键词转换为UTF-8。
简单定义
一个搜索引擎的简单定义可能如下所示
SearchEngine: - urls: - searchengine.com - search-engine.org params: - q - as_q
上面的例子将匹配主机searchengine.com
和search-engine.org
,并使用请求参数q
和as_q
(按此顺序)来检测搜索关键词。
多个配置
具有多个配置的搜索引擎的简单定义可能如下所示
SearchEngine: - urls: - searchengine.com params: - as_q - urls: - search-engine.org params: - q
上面的定义将再次匹配主机searchengine.com
和search-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!