首页 » SEO优化 » nginxphp_info技巧_设备nginxApache支持pathinfo模式什么是phpinfo模式

nginxphp_info技巧_设备nginxApache支持pathinfo模式什么是phpinfo模式

duote123 2024-12-14 0

扫一扫用手机浏览

文章目录 [+]

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

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

nginxphp_info技巧_设备nginxApache支持pathinfo模式什么是phpinfo模式

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

nginxphp_info技巧_设备nginxApache支持pathinfo模式什么是phpinfo模式
(图片来自网络侵删)

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文件中找到下面这段代码

<Directory />

Options FollowSymLinks

AllowOverride None

Order deny,allow

Deny from all

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

</Directory>

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

三:

在配置文件中加入

<Files .php>

AcceptPathInfo On

</Files>

这样 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:\phpstudy\WWW\restful\"大众

<Directory />

Options +Indexes +FollowSymLinks +ExecCGI

AllowOverride All

Order allow,deny

Allow from all

AcceptPathInfo On

Require all granted

</Directory>

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

我的配置的下载地址:

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:\phpstudy\WWW\restfulapi\restful\index.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:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\adb\"大众 [\公众SystemRoot\公众]=> string(10) \公众C:\Windows\公众 [\"大众COMSPEC\"大众]=> string(27) \"大众C:\Windows\system32\cmd.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:\phpstudy\WWW\restfulapi\users\"大众 [\"大众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模式,

标签:

相关文章

大数据丢失,时代挑战与反思

大数据时代,信息已成为推动社会进步的重要动力。大数据丢失这一现象频发,引发了社会各界的广泛关注。本文将探讨大数据丢失的原因、影响及...

SEO优化 2024-12-15 阅读0 评论0

大数据串标,技术创新引领精准营销新时代

随着互联网技术的飞速发展,大数据已经成为各行各业不可或缺的重要资源。大数据串标技术作为大数据领域的一项创新,以其精准、高效的特点,...

SEO优化 2024-12-15 阅读0 评论0

大数据Z表,介绍数据时代的“金钥匙”

随着互联网的飞速发展,大数据时代已经来临。在这个信息爆炸的时代,如何从海量数据中挖掘有价值的信息,成为企业、政府、科研机构等各个领...

SEO优化 2024-12-15 阅读0 评论0

城区大数据,助力智慧城市建设的新引擎

近年来,随着互联网、物联网、大数据等技术的飞速发展,我国城市化进程不断加快,城区大数据应运而生。城区大数据以其独特的优势,为智慧城...

SEO优化 2024-12-15 阅读0 评论0