从url YII中删除index.php

时间:2014-06-10 08:07:02

标签: php .htaccess yii

我是yii的新手,面对网址的一些问题。我不想在我的网址中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

我在main.php文件中添加了以下内容:

'urlManager'=>array(
            'urlFormat'=>'path',

            'caseSensitive'=>false,        
            ),

如果我手动删除index.php就可以了。如果我点击菜单链接,它会转到

<div id="mainmenu">
        <?php $this->widget('zii.widgets.CMenu',array(
            'items'=>array(
                array('label'=>'Home', 'url'=>array('post/index')),
                array('label'=>'About', 'url'=>array('site/page', 'view'=>'about')),
                array('label'=>'Contact', 'url'=>array('site/contact')),
                array('label'=>'Login', 'url'=>array('site/login'), 'visible'=>Yii::app()->user->isGuest),
                array('label'=>'Logout ('.Yii::app()->user->name.')', 'url'=>array('site/logout'), 'visible'=>!Yii::app()->user->isGuest)
            ),
        )); ?>

2 个答案:

答案 0 :(得分:0)

很可能你没有正确设置Apache配置

通过更改/etc/apache2/apache2.conf中的AllowOveride指令打开重写条件(位置可能因操作系统而异,您当然也只能将其转换为应用程序目录)

<Directory>
...
        AllowOverride None
....
</Directory>

<Directory>
...
        AllowOverride All
....
</Directory>

用于启用您可以执行的重写模块(可能因操作系统而异)

a2enmod rewrite

之后重启apache2
/etc/init.d/apache2 restart

service apache2 restart

答案 1 :(得分:0)

我认为错误是,请先取消注释

LoadModule rewrite_module modules/mod_rewrite.so

点击此处查看更多信息yii http://thewayofcoding.com/2009/11/clean-urls-in-php-yii-framework/