我有一个搜索输入表单。
<form action="/search">
<input type="search" name="tags">
<button type="submit">Search</button>
</form>
它生成的URL如下所示
localhost:8888/search?tags=galaxy
我如何让它生成干净的url?
localhost:8888/search/galaxy/
对于带有分隔符的多个关键字
localhost:8888/search?tags=galaxy+stars+space
localhost:8888/search?tags=galaxy%2C+stars%2C+space
这样我就不需要解析查询,因为我的CMS已经使用了干净的urls,它将重定向到正确的结果。它不一定是搜索“type=”,任何可以根据用户输入重定向到干净的url的输入。
发布于 2017-02-24 17:11:28
这里有几个选项
1-您将数据发布到服务器,没有显示URL,然后服务器返回一个干净的URL。
public function search(Request $request)
{
$tags = $request->tags;
return redirect()->to('search/' . $tags); //I assumed only one tag was passed
}
这样,您就可以向用户显示干净的URL。当有多个标签时,添加额外的logique。
2-在提交时使用Javascript重写onclick
<input type="search" name="tags">
<input type="submit" onclick="window.location.href=this.form.action + this.form.q.value;" />
<!--/search/tags-->
https://stackoverflow.com/questions/42431581
复制相似问题