搜尋
首頁php教程php手册php中$_SERVER[PATH_INFO]变量使用详解

如果你希望你的php可以使用$_SERVER[PATH_INFO]我们需要让Apache支持pathinfo才可以了,当然大部份apache默认就是支持pathinfo的哦.

最后总结测试环境:

Ubuntu Server 14.04 
PHP Version 5.5.9-1ubuntu4 
Apache/2.4.7 (Ubuntu)

PATH_INFO是服务器状态中的一个参数,通过$_SERVER['PATH_INFO']可以查看内容,$_SERVER数组中除了PATH_INFO外,还有非常多的数据,比如REQUEST_URI包含了更多的信息.

还有容易混淆的概念:pathinfo指的是PHP4(4.0.3)的一个功能,用于返回一个文件的路径信息.

Apache默认支持PATH_INFO功能,网上的很多教程不是需要修改apache的配置文件,就是要修改php的配置文件,其实完全不用修改任何文件,可以采用以下两种方式来验证PATH_INFO功能.

方式一:原生代码测试

在一个全新的系统上,比如新建一个Ubuntu 14.04 Server虚拟机,仅安装OpenSSH和LAMP软件包,在Apache的主路径/var/www/html目录下新建测试文件pathinfo.php,内容为:

假设虚拟机的IP是192.168.1.106,访问http://192.168.1.106/pathinfo.php,会得到一个空白的页面,因为这个URL没有包含PATH_INFO信息.

更换网址测试http://192.168.1.106/pathinfo.php/year/2014/,页面上会显示/year/2014/,说明可以识别PATH_INFO信息.

方法二:用ThinkPHP测试

很多的PHP框架都需要获取PATH_INFO的值,以ThinkPHP为例,基本的步骤是:下载最新的ThinkPHP到/var/www/html/目录,并解压,修改文件的权限为www-data

访问网址http://192.168.1.106/index.php,会自动生成Application下的文件列表,编辑文件Application/Home/Controller/IndexController.class.php,内容为:

<?php 
    namespace HomeController; 
    use ThinkController; 
    class IndexController extends Controller { 
        public function index(){ 
            $this->show(&#39;Hi,All&#39;,&#39;utf-8&#39;); 
        }  
        public function test(){ 
            $this->show(&#39;test&#39;); 
        } 
    }

当访问http://192.168.1.106/index.php的时候,本质上是访问了http://192.168.1.106/index.php/Home/Index/index,如果后面这个长的可以访问,说明PATH_INFO是正常的.

如果存在异常,ThinkPHP可以能报错为无法加载模块/控制器或非法操作,可以通过访问test方法来验证,输入网址http://192.168.1.106/index.php/Home/Index/test测试,页面会正常显示test.

补充:Apache2.2.22开启PathInfo模式支持,在配置文件中加入:

<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

保存,重启服务器后,项目终于可以使用PathInfo模式访问了.


本文链接:

收藏随意^^请保留教程地址.

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能