日期:2014-05-16  浏览次数:20965 次

Apache 利用rewrite 隐藏index.php文件
1.开启apache的mod_rewrite模块
? ?? ?去掉LoadModule rewrite_module modules/mod_rewrite.so前的“#”符号
? ?? ?确保<Directory "..."></Directory>中有“AllowOverride All”
2.在项目中的/protected/config/main.php中添加代码:
? ?? ?? ?? ?'urlManager'=>array(
? ?? ?? ?? ?? ?? ?'urlFormat'=>'path',
? ?? ?? ?? ?? ?? ?'showScriptName'=>false,//注意false不要用引号括上
? ?? ?? ??       ?'urlSuffix'=>'.html', //页面静态化
? ?? ?? ?? ?? ?? ?'rules'=>array(
),
? ?? ?? ?? ??),
3.在与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入口文件了。



注: 如果项目不是直接映射到localhost/下,则应该做如下修改,
? RewriteRule . index.php----->RewriteRule ^(.*)$ /appstore/index.php/$1 [QSA,PT,L]?