PHP開啟PATH INFO訪問

2021-07-29 18:08:16 字數 1267 閱讀 3981

apache2.2.22開啟pathinfo模式的支援

小柒 小柒 2013-03-12 18:46:59

昨天新配置了乙個php整合開發環境,安裝完後,把專案放到apache伺服器的www目錄下,發現只能開啟首頁,其他頁面全部無法開啟,當時比較納悶,以為是伺服器沒有配置好,測試了一下,發現環境配置沒有問題。於是我想,該專案是採用thinkphp框架開發的,在配置檔案中設定的是pathinfof訪問模式,會不會是這個問題呢?於是我採用傳統的url引數模式嘗試進行訪問,發現沒有問題。於是,很明顯,真相只有乙個,當前的伺服器並不支援pathinfof模式訪問。既然知道問題出在**,那麼,接下來就好辦了。

找度娘問了一下,大體說的都是apache2在預設情況下沒有開啟pathinfof模式,需要自行開啟,並給出了如下三種解決方法:

一: 在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

儲存,重啟伺服器後,專案終於可以使用pathinfo模式訪問了。

nginx 下開啟pathinfo模式

預設nginx是不開啟pathinfo模式的,需要配置,首先去php.ini裡把 cgi.fix pathinfo開啟 並設定為1 cgi.fix pathinfo 1 重啟php 然後需要nginx.conf裡配置東西 這個是我原配置。然後找了段 我理解的意思是 把location相關的原 全部刪...

nginx 開啟 pathinfo的過程詳解

apache往nginx去轉,端用到了 server path info 對於nginx預設是不開啟pathinfo的。所以我們就要手動開啟 1,url重寫 location location 2,pathinf設定 location p程式設計客棧hp php5 注意這塊,配置重寫的url 這塊要...

PHP路由模式Path Info模式

php 小黃牛php部落格 基於單一入口php框架path info模式路由功能實現 從如上位址中我們無法再像普通路由那樣 直觀 的看見c和m的存在,只能在index.php後面看到兩個用 符號分割的 偽引數 控制器 controllers 和方法 method path info模式路由的關鍵就在...