我有一个搜索输入表单。
<form action="/search">
<input type="search" name="tags">
<button type="submit">Search</button>
</form>
它会生成这样的网址
localhost:8888/search?tags=galaxy
如何让它生成干净的网址
localhost:8888/search/galaxy/
对于具有分隔符的多个关键字
localhost:8888/search?tags=galaxy+stars+space
localhost:8888/search?tags=galaxy%2C+stars%2C+space
这样我就不需要解析查询了,因为我的CMS已经使用了干净的URL,它会重定向到正确的结果。它不必是type =“search”,任何可以根据用户输入重定向到干净URL的输入。
答案 0 :(得分:0)
这里有几个选项
1-您将数据发布到服务器,没有显示任何URL,然后服务器返回一个干净的URL。
public function search(Request $request)
{
$tags = $request->tags;
return redirect()->to('search/' . $tags); //I assumed only one tag was passed
}
通过此,您可以向用户显示干净的URL。并在有多个标签时添加额外的逻辑。
2-在提交时使用Javascript onclick
来重写网址
<input type="search" name="tags">
<input type="submit" onclick="window.location.href=this.form.action + this.form.q.value;" />
<!--/search/tags-->