1. 程式人生 > >Apache2.2.22 開啟PathInfo模式支持

Apache2.2.22 開啟PathInfo模式支持

發現 開發環境 mod apache2.2 onf 去掉 成功 rri module

Apache2.2.22 開啟PathInfo模式支持

2017-12-19 04:26:46
昨天新配置了一個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文件中找到下面這段代碼
  <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
  保存,重啟服務器後,項目終於可以使用PathInfo模式訪問了。

Apache2.2.22 開啟PathInfo模式支持