Yii 1.1 简化URL
在默认的情况下,Yii开发的web应用的URL特别怪异,如默认的首页
http://[domainname/ip]/index.php?r=site/index
我们想能简化一下,看起来舒服一点。 比如简化如下格式:
http://[domainname/ip]/site/index
就是去掉r=…., 变成目录方式形式,
http://[domainname/ip]/index.php/site/index
要做到这一步,打开 /config/main.php,找到 urlManager,默认设置是:
/* 'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'<controller:w+>/<id:d+>'=>'<controller>/view',
'<controller:w+>/<action:w+>/<id:d+>'=>'<controller>/<action>',
'<controller:w+>/<action:w+>'=>'<controller>/<action>',
),
), */
也就是说这个设置被屏蔽掉的,我们放开它,此时就达到我们要目录样式的效果了。
接下来我们想隐藏掉index.php这个文件。这个就需要apache服务器的rewrite模块的功能了,使用它之前需要让apache加载它,就是去apache的config文件中,把注释掉的这一句放开就可以了。
LoadModule rewrite_module modules/mod_rewrite.so
接下来我们在工程目录,也就是index.php所在的目录的,创建一个
.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
接着在/config/main.php中,往urlManager中添加属性showScriptName,其值为false,因此urlManager变成这样
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'rules'=>array(
'<controller:w+>/<id:d+>'=>'<controller>/view',
'<controller:w+>/<action:w+>/<id:d+>'=>'<controller>/<action>',
'<controller:w+>/<action:w+>'=>'<controller>/<action>',
),
),
另外一个就是更改apache的配置文件,
将其中的
<Directory "xxxxxx">
…
AllowOverride None
…
</Directory>
改为
AllowOverride FileInfo
改这个是让apache能够使用.htaccess这个文件。
现在测试,是不是已经可以使用我们要的效果了。
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.