Yii url地址美化
关于yii地址美化的文章很多,大多数采用的都是官方的教程方法。
主配置文件,main.php的组件(components)中开启路由模式
‘urlManager’=>array( ‘urlFormat’=>’path’, ‘showScriptName’=>false, ‘urlSuffix’=>’.html’, ‘rules’=>array( ‘<controller:\w+>/<id:\d+>’=>’<controller>/view’, ‘<controller:\w+>/<action:\w+>/<id:\d+>’=>’<controller>/<action>’, ‘<controller:\w+>/<action:\w+>’=>’<controller>/<action>’, ),这个时候的url会从www.pjkui.com/index.php?r=aa/bb&cc统一的变成www.pjkui.com/index.php/aa/bb/cc.html,相对于之前的好了许多,如果想隐藏index.php怎么办呢。这个时候需要apache服务器开启rewrite功能,不然不会成功。
去掉路径中index.php名称
在网站根目录下新键一个.htaccess文件
里面内容:
* show index.php? * 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到上面已经机会很完美了。但是问题来了。如果我想让一个URL指定到一个特殊的格式怎么办呢?
这时候我们需要在rules中添加一个规则
'goos/<id:\d+>'=>'goods/show',
这个时候所有的index.php/goos/XX全部调用goods控制器中的show方法。建议对于具体的url配置,要尽可能的写详细,不然会与其他的url配置产生冲突,然后有一个就无法美化了。