searchTerms 中的正斜杠在 opensearch.xml 中中断搜索 url

forward slashes in searchTerms break search url in opensearch.xml

我的 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',提交到我网站的 URL 将变为

https://somesite.com/search/this/that/page/1

但 searchTerms 应该 url 编码为

https://somesite.com/search/this%2fthat/page/1

由于 URL 现在在搜索键中有额外的正斜杠,因此我的应用程序无法搜索 URL。

对于我的应用程序来说,接受搜索参数不是一个选项。这会违反其他页面的一致性,类似于关键字搜索。

有什么办法可以在 opensearch.xml 本身处理这个问题吗?

根据 opensearch specification

The "searchTerms" parameter

Replaced with the keyword or keywords desired by the search client.

Restrictions: The value must be URL-encoded.

现在,我提出 this bug 反对 Chromium 项目来解决这个问题,因为 chrome 似乎没有对搜索参数进行编码。