-1

我的 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

4

1 回答 1

0

根据opensearch 规范

“searchTerms”参数

替换为搜索客户端所需的一个或多个关键字。

限制:该值必须是 URL 编码的。

目前,我针对 Chromium 项目提出了这个错误以解决这个问题,因为 chrome 似乎没有对搜索参数进行编码。

于 2017-12-16T13:48:26.130 回答