隐藏入口文件出现的 No input file specified的解决方法

在 apache 环境下,只需要在站点根目录下创建.htaccess 文件,现在我拿ThinkPHP 5框架作为演示:在public目录下:.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>

就可以隐藏index.php 文件

但是同样是apache 服务器环境,使用上述的方法隐藏index.php文件并不一定会成功,因为入口文件的隐藏还与PHP的版本有关。

PHP的版本分为TS 与NTS版本之分

在配PHP版本为TS时,最后一句 RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
是可以正常访问的,但是在NTS时就会提示:No input file specified

TS 与NTS又是什么来的呢?
它们时PHP的线程安全检测,一般情况下:linux 下使用的是NTS,在IIS下使用的是TS

解决方法:

1、加个?问号:
RewriteRule ^(.*)$ index.php?/ 1 [ Q S A , P T , L ] 或 者 R e w r i t e R u l e ( . ∗ ) 1 [QSA,PT,L] 或者 RewriteRule ^(.*) 1[QSA,PT,L]RewriteRule(.) index.php [L,e=PATH_INFO:$1]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值