1

我编辑了 Url manager 以提供 SEO 友好的 url,但是当 url 的值带有特殊字符时出现问题,例如. or () or - or any other special character

http://localhost/nbnd/search/city/delhi

In city action
var_dump($_GET);

output: array(1) { ["city"]=> string(6) "delhi" } 

but when url is with some special character
http://localhost/nbnd/search/city/north-delhi or
http://localhost/nbnd/search/city/north.delhi or
http://localhost/nbnd/search/city/(north)delhi

In city action
var_dump($_GET);

Output : array(1) { ["north-delhi"]=> string(0) "" } 
and so for other

数组值的这种变化会导致错误。

4

1 回答 1

2

由于您需要各种字符,请从相关问题/答案更改您的规则:

'<controller:\w+>/<action:\w+>/<city>'=>'<controller>/<action>',
// omit the pattern \w+ from city:\w+

文档

如果省略 ParamPattern,则表示参数应匹配除斜杠 / 之外的任何字符。

于 2012-12-15T16:30:54.033 回答