windows下 apache配置rewrite错误解决
2017-06-27 09:59
393 查看
你的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=PATHINFO: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”前面多加了一个“?”号,问题也就随之解决了。
索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=PATHINFO: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”前面多加了一个“?”号,问题也就随之解决了。
相关文章推荐
- Windows下PHP安装路径配置错误导致Apache无法启动的解决方法
- windows 2008初体验常见问题: 无线网络"没有正确配置为使用IP协议" 错误解决办法
- windows 2003 Oracle RAC安装过程及配置,错误集合及解决办法
- Windows下Apache配置SSL以支持https及出错的解决办法
- windows环境下apache rewrite配置
- apache2.2和php5.2.17在windows下整合过程的错误解决方法
- 64位Windows 2008/7下配置IIS+PHP出现404.17错误的解决办法
- windows 2008无线网络“没有正确配置为使用IP协议” 错误解决办法
- windows 安装配置mongodb(更新 --logpath 错误解决办法)
- APMServ错误解决办法:1、Apache启动失败,请检查相关配置
- 关于windows下apache运行php出现httpd.exe错误的解决方法
- paip.配置ef_unified_filter() failed ext_filter_module mod_ext_filter.so apache 错误解决
- WINDOWS下用.htaccess配置apache的rewrite
- windows环境下apache rewrite配置
- apache+mysql+php自定义配置中如何解决http500内部服务器错误
- 使用APMServ时出现“1、Apache启动失败,请检查相关配置。√MySQL5.1已启动。”错误的终极解决办法:
- 64位Windows 2008/7下配置IIS+PHP出现404.17错误的解决办法
- paip.配置ef_unified_filter() failed ext_filter_module mod_ext_filter.so apache 错误解决
- apache 日志:customlog配置的piped log program \'/log.sh\' failed unexpectedly错误->解决