piwik / searchengine-and-social-list
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!