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

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”前面多加了一个“?”号,问题也就随之解决了。

转载于:https://www.cnblogs.com/aleafo/p/5387834.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.htaccess文件是用于配置Apache服务器的重要文件之一,它可以用来设置网站的URL重写规则、密码保护目录、自定义错误页面等功能。对于使用PHPStudy的用户来说,可以通过.htaccess文件来配置网站的访问权限、URL美化等。 以下是一些.htaccess文件的常见用法示例: 1. URL重写规则:可以使用RewriteEngine指令开启URL重写功能,并使用RewriteRule指令来定义重写规则,将URL转发到指定的脚本或页面。 ``` RewriteEngine On RewriteRule ^/example/(.*)$ /example.php?param=$1 [NC,L] ``` 上面的规则将把URL中的/example/后面的内容作为参数传递给example.php页面。 2. 密码保护目录:可以使用AuthType和AuthUserFile指令来设置目录的访问权限,只有提供正确的用户名和密码才能访问该目录。 ``` AuthType Basic AuthName "Restricted Area" AuthUserFile /path/to/.htpasswd Require valid-user ``` 上面的示例将设置目录的访问权限,并使用.htpasswd文件中的用户名和密码进行验证。 3. 自定义错误页面:可以使用ErrorDocument指令来定义自定义的错误页面,当服务器返回特定的HTTP错误码时,将显示指定的错误页面。 ``` ErrorDocument 404 /errors/404.html ``` 上面的示例将在发生404错误时,显示/errors/404.html页面。 请注意,使用.htaccess文件需要确保服务器已启用相应的模块(如mod_rewrite),并且允许.htaccess文件的使用。同时,对于PHPStudy的用户来说,还需要确认Apache服务器的配置中允许覆盖指令(AllowOverride)设置为All。 希望以上信息对你有帮助!如果你还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值