【发布时间】:2017-02-08 17:10:52
【问题描述】:
用户可以搜索我的网站。有时他们可能会使用包含正斜杠(使用 / 斜杠搜索)的搜索词,当表单提交时,该搜索词会在 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 中的编码字符。这就是为什么我认为您必须使用更简单的正则表达式,我认为您也必须转义
?。 -
我不擅长正则表达式。也许你可以提供一个正则表达式解决方案