在apache环境下,入口文件的隐藏非常简单,只需要在站点根目录下创建
.htaccess
文件,其内容如下:<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule>
但是大家要注意:同样是apache服务器环境,使用上述方式隐藏入口文件,并不一定成功!
现象:
在PHP版本TS版时,
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
这样写是可以正常访问的。但是在NTS可能会提示:No input file specified.
。
原因:
是因为服务器环境 和PHP的安装版本有关。
在这里大家要知道:
PHP的分TS版和NTS版。所谓TS和NTS其实是PHP的一个线程安全检测(TS是进行线程安全检测,NTS是不进行线程安全检测),一般情况下:linux下使用的是NTS ,在IIS下使用的TS。
解决办法:
- 在最后一句的
index.php
后面添加一个?
,如下:RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
- 把最后一句换成如下写法:
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]