Yii UrlManager路由

时间:2015-06-23 09:20:19

标签: yii

我正在开发一个视频托管网站。我在Yii config中遇到了一个小问题。我的数据库中的Easch视频有一个像't9d23f78ld'这样的密钥,我希望用户转到http://example.com/watch/t9d23f78ld查看视频。我创建了'watch'控制器,我的urlmanager配置看起来像这样:

'urlManager'=>array(
        'class'=>'application.components.UrlManager',
        'urlFormat'=>'path',
        'showScriptName' => false,
        'rules'=>array(
            '<language:(ru|uz)>/' => 'site/index',
            '<language:(ru|uz)>/<action:(contact|login|logout)>/*' => 'site/<action>',
            '<language:(ru|uz)>/<controller:\w+>/<id:\d+>'=>'<controller>/view',
            '<language:(ru|uz)>/<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
            '<language:(ru|uz)>/<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
# otherwise forward it to index.php
RewriteRule . index.php

AddDefaultCharset utf-8

如何设置URL管理器以查看视频

1 个答案:

答案 0 :(得分:0)

添加规则:

watch/<id:\w+>'=>'watch/showVideo',

表示来自网址的id传递给showVideo操作。

您还应该添加参数:

public function actionShowVideo($id) {
    ...
}