Yii 1.1 简化URL

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这个文件。

 

现在测试,是不是已经可以使用我们要的效果了。

 

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *