我的opensearch XML看起来如下所示。
<?xml version="1.0" encoding="UTF-8" ?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>my site short name</ShortName>
<Description>My search description</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16" type="image/x-icon">
https://somesite.com/images/icons/favicon-16x16.png
</Image>
<Url type="text/html" method="get"
template="https://somesite.com/search/{searchTerms}/page/1"></Url>
</OpenSearchDescription>
我在这里面临的问题是,如果关键字类似于'this/that'
,则提交到我网站的网址变为
https://somesite.com/search/this/that/page/1
但searchTerms应该被url编码为类似的东西,
https://somesite.com/search/this%2fthat/page/1
由于URL现在具有搜索键的额外正斜杠,因此我的应用程序的搜索URL被破坏。
对于我的申请,接受搜索参数不是一种选择。这会违反与关键字搜索类似的其他页面的一致性。
有没有办法在opensearch.xml
本身处理这个问题?
The "searchTerms" parameter
替换为搜索客户端所需的关键字或关键字。
限制:该值必须是URL编码的。
目前,我针对Chromium项目提出了this bug来解决这个问题,因为看起来chrome似乎没有对搜索参数进行编码。