了解知识
1、在'components'中加入
   'urlManager'=>array(
       'urlFormat'=>'path',                 //使用pathinfo模式,不需要?r=
       'showScriptName'=>false,             //隐藏index.php
       'rules'=>array(                      //这里面写规则,下文再做解释
           'pattern1'=>'route1',
           'pattern2'=>'route2',
           'pattern3'=>'route3',
       ),
   ),
2、在nginx中配置
找到相应站点的配置文件,nginx.conf,但如果你是lnmp,它会自动调用conf里的站点配置文件,你可在/usr/local/nginx/conf/vhost 中找到。
添加以下规则:(fastcgi_pass视具体服务器配置而定,不必更改。若规则已存在,加入红色两行)
    location ~ .*\.(php|php5)?$ {
        fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_index index.php;
        include fcgi.conf;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_script_name;
    }
若你在1中配置urlmanager为不显示index.php,则还需要添加如下规则:
    location / {
        if (!-e $request_filename){
            rewrite ^/(.*) /index.php last;
        }
    }
    # if(!-e $request_filename)的意义是先确定访问地址是否是真实存在的文件,否不是,则 rewrite 至 index.php
 
3、在apache中配置
在根目录下建立 .htaccess 文件,添加以下代码并保存
    Options +FollowSymLinks
    IndexIgnore */*
    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
 
4、urlmanager的 rules 规则
   格式:'key'=>'value',
   key是用于匹配的正则表达式,value是动作及参数,
   例:
   'manage' => 'content/index',
   'manage/<controller:\w+>' => '<controller>',
   'manage/<controller:\w+>/<action:(update|delete|view)>/<id:\d+>' => '<controller>/<action>',
   'manage/<controller:\w+>/<action:(create|update|delete|admin|view|changepswd|empty)>' => '<controller>/<action>',
标签: Yii框架
扩展知识