首页 > 代码库 > Yii隐藏入口文件index.php

Yii隐藏入口文件index.php

1、开启apache的mod_rewrite模块

#去掉LoadModule rewrite_module modules/mod_rewrite.so前的“#”符号
#如果是ubuntu系统,系统默认是开启rewrite的
cd /etc/apache2/mods-enabled
#查看是否有rewrite.load链接文件,如果没有则建立链接文件
cd /etc/apache2/mods-enabled
ln -s ../mods-available/rewrite.load rewrite.load//这一步未验证

 

2、确保 <Directory "..."></Directory>中有“AllowOverride All”

 

   下面是一个示例,其他情况类似:

#现有一个工程project,需要配置虚拟主机文档
cd /etc/apache2/sites-available
sudo vi project
#放入如下内容
<VirtualHost *:80>
       ServerAdmin luecsc@gmail.com
       ServerName baike.petshome.cn
       DocumentRoot /var/www/project
       <Directory />
               Options FollowSymLinks
               AllowOverride All
       </Directory>
       <Directory /var/www/project>
               Options FollowSymLinks MultiViews
               AllowOverride All
               Order allow,deny
               allow from all
       </Directory>
       ErrorLog ${APACHE_LOG_DIR}/error.log
       # Possible values include: debug, info, notice, warn, error, crit,
       # alert, emerg.
       LogLevel warn
       CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
#然后确保AllowOverride All即可

3、修改项目配置文件,在项目中的/protected/config/main.php中修改代码

‘components‘=>array(

  ...

  ‘urlManager‘=>array(

    ‘urlFormat‘=>‘path‘,

    ‘showScriptName‘=>false,//注意false不要用引号括上

    ...

),

4、在与index.php文件同级目录下添加文件".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

这样便可隐藏index.php入口文件了。

 

参考资料:http://www.yiiframework.com/forum/index.php/topic/1061-%e9%9a%90%e8%97%8findexphp%e7%9a%84%e6%ad%a5%e9%aa%a4/

 

本文出自 “迷失的月亮” 博客,请务必保留此出处http://luecsc.blog.51cto.com/2219432/1436656