在URL查询字符串中将“%2B”转换为“ +”

时间:2018-10-27 10:58:42

标签: php wordpress

我在使用get方法的表单中输入了文本:

<form method="get" action="./" role="search">
  <input name="query" type="text" value="">
  <button>Go</button>
</form>

使用“ foo bar”提交表单时,重新加载的URL如下所示:

mywpsite.com/?query=foo%2Bbar

在Duckduckgo.com,Google和类似网站上,如何用+代替%2B来呈现?示例:

mywpsite.com/?query=foo+bar

1 个答案:

答案 0 :(得分:0)

这不是一个好的解决方案,但我想这会起作用:

if(false!==stripos($_SERVER['REQUEST_URI'],"%2B")){
    http_response_code(307);
    header("Location: ".strtr($_SERVER['REQUEST_URI'],array('%2b'=>'+','%2B'=>'+')));
    die();
}
  • 代码必须在响应主体生成/发送之前运行。

此代码检查请求网址是否包含“%2b”,如果包含,    告诉浏览器使用“%2b”在URL处再次尝试该请求    转换为“ +”。