漂亮的网址与yii2

时间:2015-03-07 17:13:11

标签: yii yii2

我尝试在yii2中启用漂亮的url,但它根本不起作用。

urlManager配置:

'urlManager' => [
    'enablePrettyUrl' => true,
     'showScriptName' => false,
     'baseUrl' => '/',
]

public function actionIndex($custom_param)
{
    print($custom_param);
}

example.com/mycontroller?custom_param=value完美无缺。但我需要example.com/mycontroller/value等网址。

2 个答案:

答案 0 :(得分:3)

如果您要将其应用于index的{​​{1}}操作,并且mycontroller为整数,请将其添加到custom_param的{​​{1}}部分:

rules

否则,您可以修改模式以满足您的需求。

例如,如果urlManager是字符串,请将`urlManager' => [ 'rules' => [ 'mycontroller/<custom_param:\d+>' => 'mycontroller/index', ], ], 更改为custom_param

如果要将此规则应用于其他控制器,可以这样执行:

d+

在官方文档中阅读更多内容:

答案 1 :(得分:0)

在您的web.php文件中,组件使用以下代码:

'urlManager' => [
        'class' => 'yii\web\UrlManager',
        // Disable index.php
        'showScriptName' => false,
        // Disable r= routes
        'enablePrettyUrl' => true,
        'rules' => array(
                '<controller:\w+>/<id:\d+>' => '<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
                '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
        ),
    ],

在您的网络文件夹中创建.htaccess文件并粘贴它:

RewriteEngine on # If a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # therwise forward it to index.phpRewriteRule . index.php