在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]
博客介绍了在apache环境下入口文件隐藏的情况,指出同样是apache服务器环境,隐藏入口文件不一定成功,原因与服务器环境和PHP安装版本有关,PHP分TS版和NTS版,还给出了相应的解决办法。
1490

被折叠的 条评论
为什么被折叠?



