phpstudy APACHE支持.htaccess以及 No input file specified解决方案

你的Apache安装文件夹conf里找到httpd.conf文件

索LoadModule rewrite_module modules/mod_rewrite.so 如果前面有注释符号#,请去掉。
搜索Options FollowSymLinks,然后将它下面的AllowOverride None 修改为AllowOverride All;

【1】

没想到遇见了 No input file specified   因为项目用了URL route ,估摸着可能是rewrite的问题。

记录一下解决方案。

1.检查doc_root 是否设置此值

2.检查.hta文件 , 很多框架都是index.php当入口文件。

默认的

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

规则在apache fastcgi模式下会导致No input file specified.

修改成

RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

就OK,地址正常重写。

 

【2】

我们都知道,使用伪静态相对来说,对搜索引擎比较友好,而我在Dreamhost的空间上启用REWRITE的伪静态功能的时候,首页可以访问,而访问内页的时候,就提示:“No input file specified.”。
百度搜索了一下,发现还有其它空间商也有此问题,原因在于空间所使用的PHP是fast_cgi模式,而在某些情况下, 不能正确识别path_info所造成的错误,就是Wordpress也有一样的问题,还好找到了解决方案!
我们首先来看一下Wordpress及Typecho等程序默认的.htaccess里面的规则:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

而提示是说:“No input file specified.”,也就是说没有得到有效的文件路径。在Google中找到了解决方案,就是修改一下伪静态规则,如下:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

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

时间: 2024-11-03 08:24:19

phpstudy APACHE支持.htaccess以及 No input file specified解决方案的相关文章

apache中的.htaccess与配置apache支持.htaccess方法

apache中的.htaccess与配置apache支持.htaccess方法 .htaccess文件的功能:"分布式配置文件"提供了针对目录改变配置的方法,即:在一个特定的文档目录中放置一个包含一个或多个指令的文件,以作用于此目录及其所有子目录.作为用户,所能使用的命令受到限制.管理员可以通过Apache 的AllowOverride指令来设置.子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令. 一.错误文档的定位 (1)常用的客户端请求错误返回代码: 401 Author

如何让APACHE支持.htaccess

如何让自己的本地APACHE服务器支持".htaccess"呢?其实只要简单修改一下apache的httpd.conf设置就可以让APACHE支持.htaccess了,来看看操作 打开httpd.conf文件(在那里? APACHE目录的CONF目录里面),用文本编辑器打开后,查找 <Directory />    Options FollowSymLinks    AllowOverride None</Directory> 改为 <Directory

APACHE支持.htaccess方法

         如何让自己的本地APACHE服务器支持".htaccess"呢?其实只要简单修改一下apache的httpd.conf设置就可以让APACHE支持.htaccess了,来看看操作 打开httpd.conf文件(在那里? APACHE目录的CONF目录里面),用文本编辑器打开后,查找 <Directory /> Options FollowSymLinks AllowOverride None </Directory>  改为 <Direc

如何让apache支持.htaccess并设置404错误页

如何让apache支持.htaccess,今天我在看seo 优化时发现的一个问题,就是定义页面的404错误对网站优化有一点的好处,所以我也要把自己主机上的找不到的页面设置到这里来,下面就是我今天的经验了. 第一步:我们要找到apache安装目录下的httpd.cof文件,在里面找到 <Directory />     Options FollowSymLinks     AllowOverride none </Directory> 我们只要把蓝色字的none改all就重起apac

APACHE支持.htaccess伪静重写出错 No input file specified的解决方案_Linux

在你的Apache安装文件夹conf里找到httpd.conf文件 搜索LoadModule rewrite_module modules/mod_rewrite.so 如果前面有注释符号#,请去掉. 搜索Options FollowSymLinks,然后将它下面的AllowOverride None 修改为AllowOverride All: [1] 没想到遇见了 No input file specified 因为项目用了URL route ,估摸着可能是rewrite的问题. 记录一下解决

Apache支持.htaccess

今天在本地调试Discuz 6 .1 .0的时候,发现URL没法进行伪静态.我以为是.htaccess没设置对,反复修改还是不行.我突然想到,是不是我的apache本来就不支持.htaccess呢.于是我搜索起来. 有网站介绍说:打开httpd.conf文件用文本编辑器打开后,查找 <Directory /> Options FollowSymLinks AllowOverride None </Directory> 改为: <Directory /> Options

Apache支持.htaccess配置方法

打开httpd.conf文件用文本编辑器打开后,查找  代码如下 复制代码 Options FollowSymLinks AllowOverride None 改为: Options FollowSymLinks AllowOverride All 可是我在我的httpd.conf文件里根本没有发现Options FollowSymLinks 之类的东西.我只好将  代码如下 复制代码 Options FollowSymLinks AllowOverride All 手动添加到httpd.con

windows2003/2008系统配置apache支持.htaccess

一.在Apache配置文件httpd.conf中找到#LoadModule rewrite_module modules/mod_rewrite.so,去掉前面的"#"号保存. 二.配置虚拟主机文件httpd-vhosts.conf,重点颜色突出出.  代码如下 复制代码 <Directory "网站目录"> Options -Indexes FollowSymLinks AllowOverride All </Directory> 三.重启

Linux中开启Apache支持.htaccess伪静态文件步骤

第一.编辑httpd.conf文件 A - 在etc/httpd/conf/目录下的httpd.conf 文件,找到: LoadModule rewrite_module modules/mod_rewrite.so 如果前面有#就取消,如果没有就默认不要修改. B - 设置AllowOverride 同样的在httpd.conf  中找到下面的脚本 <Directory /> Options FollowSymLinks AllowOverride None </Directory&g