Apache服务器网站访问伪静态内页出现No input file specified.的完美解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache服务器网站访问伪静态内页出现No input file specified.的完美解决方案相关的知识,希望对你有一定的参考价值。

原文地址:Apache服务器网站访问伪静态内页出现No input file specified.的完美解决方案

技术分享

启用REWRITE的伪静态功能的时候,首页可以访问,而访问内页的时候,就提示:“No input file specified.”

原因在于使用的php是fast_cgi模式,而在某些情况下,不能正确识别path_info所造成的错误,Wordpress的伪静态也有一样的问题。

Wordpress程序默认的.htaccess里面的规则:

1
html " data-pbcklang="html" data-pbcktabsize="4"> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php/$1 [L]

“No input file specified.”,是没有得到有效的文件路径造成的。

修改伪静态规则,如下:

1
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?/$1 [L]

有没有发现不同?

其实就是在正则结果“/$1”前面多加了一个“?”号,问题也就随之解决了。

 

阿里云服务器安装LNMP(Nginx)后打开网站显示“ No input file specified”解决方法

阿里云服务器安装LNMP后,打开网站显示“ No input file specified”,以下方法经过验证无效:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
在php.ini文件里面修改:

1、增加一行(这个最重要)

fastcgi.impersonate = 1

2、修改两项(解开注释就可以了)

cgi.fix_pathinfo=1
cgi.force_redirect = 0

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# 修改为
fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;

以下是解决方法:

1
2
3
4
源码目录下有个.user.ini文件,打开是
open_basedir=/home/wwwroot/ABC:/tmp/:/proc/
改成
open_basedir=/home/wwwroot/default/ABC:/tmp/:/proc/


推荐阅读:经典FQ教程:shadowsocks+linode+kcptun搭建梯子,秒开youtube1080P

推荐阅读:国内最新的四种登录facebook的FQ方法以及登录教程

相关阅读:三十岁|程序员:老子不仅会写代码,还懂生活,懂消费,懂客户体验


以上是关于Apache服务器网站访问伪静态内页出现No input file specified.的完美解决方案的主要内容,如果未能解决你的问题,请参考以下文章

Nginx/Apache之伪静态设置 - 运维小结

thinkphp5 伪静态后出现No input file specified.问题

将Apache的.htaccess转换到nginx中

Nginx 伪静态简单配置

记一次301跳转--不跳转内页问题

typecho安装在子目录的nginx伪静态规则