yii路由正则匹配斜杠(/)问题处理

2021-02-02 13:10:17

网站的搜索页面路由原来的写法是

‘GET article/search/<keyword:[^/]+>/<page:\d+>’ => ‘article/list’

这种写法当keyword是包含斜杠的话,会出现404问题。

比如这样的写法:

https://pgres.cn/article/search/http://baidu.com/1

应该是把http:对应成page了。

需要修改路由,改成下面的写法就可以了。

‘GET article/search/<keyword:\S+>/<page:\d+>’ => ‘article/list’

这种会把/search到最后一个斜杠之前都算作keyword参数。