Php Yii:删除不必要的URL参数

Php Yii:删除不必要的URL参数,php,yii,Php,Yii,我有一个问题: 根据手册,我用SEO友好的URL编程了我的应用程序,方法如下: 使用以下URLManager规则: 'page/<slug:.*?>/<page:.*?>'=>'page/view', 'page/<slug:.*?>/'=>'page/view', 跟踪到我的控制器中与此无关的私有函数 所以我的问题是: 如何清理beforeAction中的请求url?有办法吗 提前感谢:-)我要做的第一件事是改进规则,使它们只接受预期值。但现

我有一个问题: 根据手册,我用SEO友好的URL编程了我的应用程序,方法如下:

使用以下URLManager规则:

'page/<slug:.*?>/<page:.*?>'=>'page/view',
'page/<slug:.*?>/'=>'page/view',
跟踪到我的控制器中与此无关的私有函数

所以我的问题是:

如何清理beforeAction中的请求url?有办法吗


提前感谢:-)

我要做的第一件事是改进规则,使它们只接受预期值。但现在你几乎什么都让了。大致如下:

'page/<slug:\w+>/<page:[a-z\-]+>'=>'page/view',
'page/<slug:\w+>/'=>'page/view',
…由于URL与您的规则不匹配,导致404

然而,该URL无论如何都是错误的,因为第一个符号应该是问号。因此,如果您希望看到坏的URL,您可以注意它们。这是一个非常粗糙的正则表达式,但您可以理解:

'page/<slug:\w+>/<page:[a-z\-]+>&<rubbish:.*>'=>'page/viewWithBadUrls',
您可以使用它,或者将URL和301清理到正确的位置

http://example.com/page/page-slug&locale=en_us&mobile=true&numposts=5
'page/<slug:\w+>/<page:[a-z\-]+>&<rubbish:.*>'=>'page/viewWithBadUrls',
print_r($_GET); // Array ( [slug] => page [page] => page-slug [rubbish] => locale=en_us&mobile=true&numposts=5 )