w in regexp means ?word“ character and such url part as ?my-prety-page“ will NOT match.
To hide GET params you must improve your urlManager rules. You can write such a rule for pages using SEF urls:
'<controller:w+>/<id:d+>/<title:[^/]*>/*' => '<controller>/view'
In this case when you enter url
http://example.com/page/12/my-prety-title
a Page controller will be called to perform view action with id and title as arguments. It is the same if you enter this url:
http://example.com/page/view?id=12&title=my-prety-title
The last part /*
in rule allows to keep additional params. E.g. if your address is
http://example.com/user/55/john-doe-junior/foo/bar/
in UserController
's actionView
you can write
echo '<pre>' ;
print_r($_GET);
echo '</pre>' ;
die();
and you'll see
Array
(
[id] => 55
[title] => john-doe-junior
[foo] => bar
)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…