我有这样的网址:
www.studyenglish/index.php?r=site/lesson&act=read&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=site/lesson
成为:
www.studyenglish/site/lesson
那么,如何更改此网址
www.studyenglish/index.php?r=site/lesson&act=read&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){
//
}