我也配置了很多次了,前面都快放弃了,最近在学习resuful框架写api,代码实现上没出现啥问题,倒是这个path_info的环境配置把我弄的比较郁闷

你一定见过类似这样的路径:http://www.04007.cn/index.php/home/index/action/3408.html,对,这就是phpinfo模式。从上面可以看出其有以下几个特点。

1,URL中带有入口文件全名,即index.php,

2,在入口文件后面依然跟有路径比如上面的/home/index/action/3408.html

3,很多框架中后面分别是/模块/控制器/方法参数等,Thinkphp就是这样的。当然这个不一定非得是模块控制器方法的组成。

按照常理来理解,index.php后面跟随着路径,那么index.php就相当于一个文件夹了。但实际上又不存在index.php这个文件夹,所以如果没有开启phpinfo模式,那么这个路径解析就会报找不到文件。而只有在开启phpinfo模式之后,服务器才会去执行index.php这个文件。从服务器上的配置方法也可以看出来。

本人使用的是集成安装环境phpstudy,这个环境用的时间比较久

先检查这三个配置

一:

在PHP安装文件夹下找到PHP.INI,

;cgi.fix_pathinfo=1

改为

cgi.fix_pathinfo = On

保存,重启服务器即可

也有的说将

;cgi.fix_pathinfo=1

之前的 ; 去掉,即改为

cgi.fix_pathinfo=1

保存,重启服务器的。

但是我尝试发现,这样并不能解决问题,于是决定采用第二种方法;

二:

打开Apache安装文件夹下的conf文件夹,找到httpd.conf文件中找到下面这段代码

Options FollowSymLinks

AllowOverride None

Order deny,allow

Deny from all

AcceptPathInfo On //加入这行代码就OK了

不幸的是,按照上面的方法,还是失败了。木办法,只能试下第三种方法了;

三:

在配置文件中加入

AcceptPathInfo On

这样 Apache 就可以支持针对 php 文件的 PathInfo 了。

于是,又充满希望的试了一下,可惜,还是没有成功。

我想,这PathInfo跟URL有关,那会不会是因为Apache服务器没有开启mod_rewrite模块的关系呢?于是,我在Apache的配置文件(Apache安装目录的conf文件夹下的httpd.conf文件)里找到:

#LoadModule rewrite_module modules/mod_rewrite.so

将前面的#去掉,改为:

LoadModule rewrite_module modules/mod_rewrite.so

下面是nginx服务器开启phpinfo模式的方法:

location ~ [^/].php(/|$){ # comment try_files $uri =404; to enable pathinfo #try_files $uri =404; #把这行代码注释,让服务器不尝试去加载路径文件 fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf; include pathinfo.conf; #加载phpinfo.conf配置}

重启nginx服务器即可。对于Apache服务器,需要先加载rewrite模块,将http.conf中的配置AllowOverride None将None改为 All,重启Apache即可。在.htaccess文件中加入

RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

注:在配置虚拟域名的时候我的配置

我给个我的配置成功的php.ini和httpd.comf把,我在另外一台电脑没有成功的原因可能是我多加了个这个指向到项目地址的配置,例如我下面这个配置把

DocumentRoot "E:phpstudyWWWestful"

Options +Indexes +FollowSymLinks +ExecCGI

AllowOverride All

Order allow,deny

Allow from all

AcceptPathInfo On

Require all granted

指向到了项目单项目的根地址下把

我的配置的下载地址:

http://download.csdn.net/download/qq_27229113/9981419

最近在学习用restful框架写api,发现自己路由存在这个问题

我把虚拟域名指向为www.restfulapi.com/

虚拟域名地址指向为restfulapi这个文件夹

我的api目录写在restful/index.php里面,有两个方法,分别是users和articles两个方法

如果我输入http://www.restfulapi.com/restful/路由会发现还报这个错误Notice: Undefined index: PATH_INFO in E:phpstudyWWWestfulapiestfulindex.php on line 107

{"error":"请求资源不被允许"}

但是输入这个路由时http://www.restfulapi.com/restful/users

便有数据反馈{"error":"用户名不能为空"}

在代码index.php打印加载的配置

var_dump($_SERVER);反馈结果为
array(39) { ["REDIRECT_STATUS"]=> string(3) "200" ["HTTP_HOST"]=> string(18) "www.restfulapi.com" ["HTTP_CONNECTION"]=> string(10) "keep-alive" ["HTTP_CACHE_CONTROL"]=> string(9) "max-age=0" ["HTTP_USER_AGENT"]=> string(108) "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36" ["HTTP_UPGRADE_INSECURE_REQUESTS"]=> string(1) "1" ["HTTP_ACCEPT"]=> string(85) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8" ["HTTP_ACCEPT_ENCODING"]=> string(13) "gzip, deflate" ["HTTP_ACCEPT_LANGUAGE"]=> string(14) "zh-CN,zh;q=0.8" ["PATH"]=> string(272) "C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:Program Files (x86)Microsoft SQL Server100ToolsBinn;C:Program FilesMicrosoft SQL Server100ToolsBinn;C:Program FilesMicrosoft SQL Server100DTSBinn;C:adb" ["SystemRoot"]=> string(10) "C:Windows" ["COMSPEC"]=> string(27) "C:Windowssystem32cmd.exe" ["PATHEXT"]=> string(53) ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC" ["WINDIR"]=> string(10) "C:Windows" ["SERVER_SIGNATURE"]=> string(0) "" ["SERVER_SOFTWARE"]=> string(47) "Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.5.38" ["SERVER_NAME"]=> string(18) "www.restfulapi.com" ["SERVER_ADDR"]=> string(9) "127.0.0.1" ["SERVER_PORT"]=> string(2) "80" ["REMOTE_ADDR"]=> string(9) "127.0.0.1" ["DOCUMENT_ROOT"]=> string(26) "E:/phpstudy/WWW/restfulapi" ["REQUEST_SCHEME"]=> string(4) "http" ["CONTEXT_PREFIX"]=> string(0) "" ["CONTEXT_DOCUMENT_ROOT"]=> string(26) "E:/phpstudy/WWW/restfulapi" ["SERVER_ADMIN"]=> string(18) "admin@phpStudy.net" ["SCRIPT_FILENAME"]=> string(44) "E:/phpstudy/WWW/restfulapi/restful/index.php" ["REMOTE_PORT"]=> string(5) "59338" ["REDIRECT_URL"]=> string(14) "/restful/users" ["GATEWAY_INTERFACE"]=> string(7) "CGI/1.1" ["SERVER_PROTOCOL"]=> string(8) "HTTP/1.1" ["REQUEST_METHOD"]=> string(3) "GET" ["QUERY_STRING"]=> string(0) "" ["REQUEST_URI"]=> string(14) "/restful/users" ["SCRIPT_NAME"]=> string(18) "/restful/index.php"["PATH_INFO"]=>string(6) "/users" ["PATH_TRANSLATED"]=> string(32) "E:phpstudyWWWestfulapi甥敳獲" ["PHP_SELF"]=> string(24) "/restful/index.php/users" ["REQUEST_TIME_FLOAT"]=> float(1505533005.973) ["REQUEST_TIME"]=> int(1505533005) } {"error":"用户名不能为空"}

发现["PATH_INFO"]=>string(6) "/users"

说明这个path_info配置只指向到了restful/users和restful/articles目录下我怀疑是我的路由配置的原因在打开我的 .htaccess文件夹

RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]还有我发现运行这个http://www.restfulapi.com/restful/users路由的时候会经过二次跳转才访问到最终api,感觉这里存在问题

经过测试得出下面个人结论

在实际非api注册中的路由是www.restfulapi.com,可以完成用户注册,而我们使用resuful框架进行api注册用户时的路由是www.restfulapi.com/restful/users和文章api www.restfulapi.com/restful/articles的路由既可以是个人对路由理解不够透彻吧!总结下,上面的路由配置和php.ini和http.conf配置才是重点,完成好就可以实现php的pathinfo模式,

phpinfo查看可以解析的后缀_配置nginx,Apache支持pathinfo模式-什么是phpinfo模式相关推荐

  1. apache http server 停止工作_配置nginx,Apache支持pathinfo模式-什么是phpinfo模式

    我也配置了很多次了,前面都快放弃了,最近在学习resuful框架写api,代码实现上没出现啥问题,倒是这个path_info的环境配置把我弄的比较郁闷 你一定见过类似这样的路径:http://www. ...

  2. 配置nginx,Apache支持pathinfo模式-什么是phpinfo模式

    我也配置了很多次了,前面都快放弃了,最近在学习resuful框架写api,代码实现上没出现啥问题,倒是这个path_info的环境配置把我弄的比较郁闷 你一定见过类似这样的路径:http://www. ...

  3. phpinfo查看可以解析的后缀_phpinfo详解

    php的很多信息都可以从phpinfo中获取,下面就详细了解下phpinfo的输出内容 1 php版本信息 第一行显示当前php版本 PHP Version 5.5.12 2 php.ini文件的位置 ...

  4. nginx 防止恶意域名解析_配置nginx只允许域名访问,禁止ip访问【图文教程】

    平凡也就两个字: 懒和惰;成功也就两个字: 苦和勤;优秀也就两个字: 你和我.跟着我从0学习JAVA.spring全家桶和linux运维等知识,带你从懵懂少年走向人生巅峰,迎娶白富美!每一篇文章都是心 ...

  5. nginx 一个请求发给多台机器_配置Nginx实现负载均衡

    企业在解决高并发问题时,一般有两个方向的处理策略,软件.硬件,硬件上添加负载均衡器分发大量请求,软件上可在高并发瓶颈处:数据库+web服务器两处添加解决方案,其中web服务器前面一层最常用的的添加负载 ...

  6. php fpm apache nginx_安装配置Nginx/Apache+PHP-fpm服务环境

    最近上了一批debian7的机器,刚好有web项目要上,debian7中已经把php-fpm集成进去了,打算把以前的apache+mod_php模式换成nginx+php-fpm或者apache+ph ...

  7. [转]配置nginx+apache 其中动态由apache处理,静态由nginx处理

    转载自: http://blog.lubingit.com/post/86/  大 | 中 | 小   http://forum.ubuntu.org.cn/viewtopic.php?t=26084 ...

  8. nginx实现ip端口转发_配置Nginx实现端口转发

    #### 三.更改 Nginx 配置文件实现端口转发 1. 打开第二步中创建的 File Browser 网站([公网ip:端口]()),账号密码为 **admin/admin**,登录到 File ...

  9. 配置Nginx来支持php

    转载地址:https://www.cnblogs.com/jecyhw/p/5504855.html 1.安装php7 下载地址:https://secure.php.net/downloads.ph ...

最新文章

  1. python从网上获取数据失败怎么解决_求助:scrapy爬取数据失败,反复调试都不成功...
  2. iOS网络编程开发—HTTP协议
  3. 洛谷 - P4568 [JLOI2011]飞行路线(分层图最短路)
  4. Java反射机制API
  5. MySQL 错误 1366:1366 Incorrect integer value
  6. PWN--collision
  7. signature=b28f8fc969e82dcca916aa6ef86476cb,Method for verifying redundancy of secure systems
  8. python绘制风向玫瑰图和污染物玫瑰图
  9. 上传文件与下载文件不一致的怪事
  10. python架构师是做什么的_架构师的工作都干些什么?!想做架构师必看!
  11. java二进制文件转xml_简单Java类与XML之间的转换
  12. 2022-2027年(新版)中国数字出版行业发展动态与未来前景趋势报告
  13. 软件系统上线前演示剧本
  14. mysql virt虚拟内存_Java 进程占用VIRT虚拟内存超高的问题
  15. Cocos独立游戏精品|高自由度地牢探险《贪婪洞窟​》
  16. 在Vue中自制视频播放器(上)
  17. 解决Chrome 内置的翻译功能翻译用不了
  18. 基于原子势函数及人工蜂群算法进行形状匹配优化(Matlab代码实现)
  19. UE4蓝图流程控制:FlipFlop节点、DoOnce节点的使用
  20. SpringBoot - OAuth2第三方登录之新浪微博登录

热门文章

  1. 非常漂亮的Flash纯脚本生成饼图
  2. Linux 之 Kickstart
  3. scrapy分布式去重组件源码及其实现过程
  4. 【转】iPhone4清理垃圾文件的方法
  5. 简单的实现购物车功能,还有不到位的地方,加油!!!
  6. 数据丢失如当头棒喝,数据备份重如山!
  7. 使用fliter实现ie下css中rgba的效果
  8. 【笨木头Lua专栏】基础补充08:协同程序之resume-yield间的数据返回
  9. shell中的条件表达式
  10. 实验6      VRRP网关备份(下)