gpt4 book ai didi

php - 如何使用 addiction get 参数在 laravel 5 url 中传递正斜杠(%2F)

转载 作者:搜寻专家 更新时间:2023-10-31 21:23:07 26 4
gpt4 key购买 nike

用户可以搜索我的网站。有时他们可能会使用包含正斜杠的搜索词(使用/斜杠搜索),当通过表单提交时,它会在 url 中变成 %2F。

例如。 www.mysite.com/search/search+with+%2F+slash

我使用了 here 的答案这非常适合给我正确的页面,而不是将我发送到 404。

我现在的问题是我在页面上使用分页和自定义过滤器,它们都在 url 中作为 get vars 传递,并且在访问 GET var 时它是空的。

例如。 www.mysite.com/search/search+with+%2F+slash?page=2

这是我现在的路线

$this->get('search/{search_term}', ['uses' => 'SearchController@search'])
->where('search_term', '(.*(?:%2F:)?.*)');

不知道从这里做什么

最佳答案

在 URL 的路径部分中包含编码斜杠 ( %2F ) 不是一个好主意。 The HTTP RFC说这个序列应该“等同于”一个真正的斜杠:

Characters other than those in the "reserved" and "unsafe" sets (seeRFC 2396 [42]) are equivalent to their ""%" HEX HEX" encoding.

实际上,对这些 URL 的处理是不一致的。一些网络服务器(甚至一些浏览器!)会处理 %2F由于等同于真正的斜杠,有些人会以不同的方式对待它,有些工具(包括一些 Web 应用程序防火墙和代理)会简单地拒绝包含此类序列的 URL。

如果您需要在 URL 中包含这样的用户输入,您应该将其放入查询字符串 ( /search/?q=search+with+%2f+slash) 中。

关于php - 如何使用 addiction get 参数在 laravel 5 url 中传递正斜杠(%2F),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42119455/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com