Yii 2.0 URL的问题

环境为linux+nginx

配置文件中启用了如下配置

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'suffix' => '',
    'rules' => [
        '<controller:(user)>/<name:(\w|-)+>' => '<controller>/index',
        '<controller:(user)>/<name:(\w|-)+>/<action:\w+>' => '<controller>/<action>',
    ],
],

UserController的代码如下:

Class UserController extends \yii\web\Controller
{
    //用户综合页面
    public function actionIndex($name = null)
    {
        return $name.' user index';
    }
    //用户相册列表页面
    public function actionAlbum($name = null)
    {
        return $name.' user album';
    }
    // 其他action
    // ..
}

我现在的URL如下,分别用来访问xiaoming这个用户的综合页面和相册列表页面

http://www.domain.com/user/xiaoming
http://www.domain.com/user/xiaoming/album

我想要在用户请求这两个URL的时候,自动在后面加上“/”,即

http://www.domain.com/user/xiaoming/
http://www.domain.com/user/xiaoming/album/

请问我应该如何配置?

阅读 3.9k
1 个回答

太多办法了

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'suffix' => '',
    'rules' => [
        '<controller:(user)>/<name:(\w|-)+>/' => '<controller>/index',
        '<controller:(user)>/<name:(\w|-)+>/<action:\w+>/' => '<controller>/<action>',
    ],
],

就是在规则里面就把/写好了
或者做个跳转。。用正则判断是不是/结尾。如果不是。那就加上去。在路由里也行。控制器顶层也行
类似 1$


  1. /
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进