如何创建此 urlManager 规则?

How to create this urlManager rule?

首先请原谅我的英语水平低

在名为 webController 的控制器中执行以下操作:

public function actionPage($view = 'index')
{
  try {
    return $this->render('site/page/' . $view);
  } catch (InvalidParamException $e) {
    throw new HttpException(404);
  }
}

我需要一个规则来执行以下操作:

localhost/cookies

equals

localhost/?r=web/page&view=cookiesyprivacidad

localhost/faq

equals

localhost/?r=web/page&view=preguntas

像这样:

'rules'=>array(
   'cookies'=>'web/page'
)

但是增加了固定参数。

如果我是你,我会让事情变得简单一点。我会为控制器中的每个视图创建一个动作,并使用 urlmanager 路由到正确的控制器动作

'rules'=>array(
   'cookies'=>'page/cookiesyprivacidad',
   'faq'=>'page/preguntas',
)


public function actionCookiesyprivacidad()
{
  try {
    return $this->render('site/page/cookiesyprivacidad');
  } catch (InvalidParamException $e) {
  throw new HttpException(404);
 }
}

 public function actionPreguntas()
{
  try {
    return $this->render('site/page/preguntas');
  } catch (InvalidParamException $e) {
  throw new HttpException(404);
 }
}

你需要这个

'urlManager' => array(
  'rules' => array(
    <view:(cookies|faq)>' => 'web/page'
  )
)