我有这样的网址:
www.studyenglish/index.php?R=站点/课程&活动=阅读&ID=1
我想换成:
www.studyenglish/site/lesson/read
我已经在url manager config/main.php中添加了这个脚本

'urlManager'=>array(
       ....
       'showScriptName'=>false,
        ....
    ),

并将此脚本添加到.htaccess中
Options +FollowSymLinks
RewriteEngine on
RewriteBase /

# 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

但它只能在这样的url中工作:
www.studyenglish/index.php?R=场地/课程
成为:
www.studyenglish/site/lesson网站
那么,如何更改这个url
www.studyenglish/index.php?R=站点/课程&活动=阅读&ID=1
成为
www.studyenglish/site/lesson/read
希望有人能帮忙。
谢谢。。。

最佳答案

在urlmanager中有一些规则,您可以定义自己的规则。
您的urlmanager可能是这样的。

'urlManager' => array(
'urlFormat' => 'path',
    'rules' => array(
        'gii' => 'gii/index',
        'gii/<controller:\w+>/<action:[\w-]+>' => 'gii/<controller>/<action>',
        '<controller:\w+>/<id:\d+>' => '<controller>/view',
        '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
        'site/lesson/<act:\w+>/<id:\d+>' => 'site/lesson'
        //

这将调用sitecontroller中的actionlesson,它应该得到两个参数。
你的方法应该是这样的。
public function actionLesson($act,$id){
    //
}

09-26 11:16