【问题标题】:Url Manager hide controller name and function name in YIIUrl Manager 在 YII 中隐藏控制器名称和函数名称
【发布时间】:2016-11-26 08:37:01
【问题描述】:

我是 YII 框架的新手。我必须隐藏默认的控制器名称和函数名称。 例如:

(现有网址:http://localhost/food/store/home)

(必填网址:http://localhost/food/)

在 YII 框架配置页面中,他们将urlManager 声明为:

配置页面中的 URL 管理:

'urlManager'=>array(
    'urlFormat'=>'path',
    'showScriptName' => false,
    'rules'=>array(           
        '<controller:\w+>/<id:\d+>'=>'<controller>/view',
        '<controller:\w+>'=>'<controller>/index',
        '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
        '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
    ),
    'showScriptName'=>false,
)

默认控制器声明:

'defaultController'=>'store'

【问题讨论】:

    标签: php yii yii2


    【解决方案1】:

    您可以不使用&lt;controller&gt; 或&lt;action&gt; 之类的占位符来创建特定规则,您只需确保将它们添加到一般情况的规则之前。

    'urlManager' => [
        'urlFormat' => 'path',
        'showScriptName' => false,
        'rules' => [
            //Add the rules for the specific cases
            '' => 'store/home',
    
            // The general case rules go after the specific cases
            '<controller:\w+>/<id:\d+>' => '<controller>/view',
            '<controller:\w+>' => '<controller>/index',
            '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
            '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
        ],
    ],
    

    【讨论】:

      【解决方案2】:

      使用别名将解决问题
      'urlManager' => array( 'urlFormat' => 'path', 'rules' => array( 'admin' => '/admin/default', 'mobile' => '/mobile/default', 'mobile/<alias:fees|aboutus|contactus|terms|policy|faq|aml|legal|news|testimonial>' => 'mobile/default/<alias>', '<alias:fees|about|contactus|terms|privacypolicy|faq|aml|legal>' => 'site/<alias>', '<module:\w+>/<controller:\w+>/<action:\w+>' => '<module>/<controller>/<action>', '<controller:\w+>/<id:\d+>' => '<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', '<controller:\w+>/<action:\w+>' => '<controller>/<action>', ), 'showScriptName' => false, ),

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-16
        • 2011-09-08
        相关资源
        最近更新 更多