我在我的网站上添加了/search页面,并使用支持多个搜索引擎的表单。希望为访客提供更多选择的选择。
挑战是管理不同站点的不同查询参数。
- DuckDuckgo不支持多个
q=
参数,但确实接受sites=
- ecosia不支持
sites=
param,但确实支持多个q=
params(尽管有一个额外的逗号需要一个空间) - Google确实支持
as_sitesearch=
param,但通过添加了另一个q=
param。
通过添加几个不同的隐藏表单字段,我能够无缝覆盖每个引擎。
那么唯一的区别是可以在按钮上定义表单操作。
最终结果如下:
<form rel="search" method="get">
<input type="hidden" name="sites" value="ciccarello.me"/>
<input type="hidden" name="q" value="site:ciccarello.me "/>
<input type="text" name="q" placeholder="Search"/>
<button type="submit" formaction="https://ecosia.com/search">Search with Ecosia</button>
<button type="submit" formaction="https://www.google.com/search">Search with Google</button>
<button type="submit" formaction="https://duckduckgo.com/">Search with DuckDuckGo</button>
</form>