【小(xiǎo)編推薦】ThinkPHP3.2——PATHσ'↔∞_INFO支持

2014-06-26   |↕&♣   發布者:梁國(g∑ ♠ uó)芳   |•​   查看(kàn):33★÷φ20次

Thinkphp

如(rú)果發生(shēng)在本地(dì)測試正常,但(dànβ")是(shì)一(yī)旦部署到(dào)服務器(qì)環境後會≠∑≈(huì)發生(shēng)隻能(néng)訪問(wèn)首頁的(d↑∞e)情況,很(hěn)有(yǒu)可(kě)能(nén‍↔÷g)是(shì)你(nǐ)的(de)服務器(q☆δβδì)或者空(kōng)間(jiān)不(bù)支持PATH_ ♥∞INFO所緻。

系統內(nèi)置提供了(le)對(duì)PAε♥↓≥TH_INFO的(de)兼容判斷處理(lǐ),但(dàn)是(shì₽↕↕•)不(bù)能(néng)确保在所有(yǒu)的(de€₽)環境下(xià)面都(dōu)可(kě)以支持。如(rú)果你("$₩πnǐ)确認你(nǐ)的(de)空(kōng→≈§)間(jiān)不(bù)支持PATH_INF•₩πO的(de)URL方式的(de)話(huà), $有(yǒu)下(xià)面幾種方式可(kě)以處₹☆ 理(lǐ):

修改URL_PATHINFO_FETCH配置參數(✘™©shù)

新版內(nèi)置了(le)通(tōng)過對( ÷duì)ORIG_PATH_INFO,REDIRECT_PATH_INFO,REDIRECT_URL三個(gè)系統$_SERVER變量的(de)判斷處₹≥理(lǐ)來(lái)兼容讀(dú)取$_SERVER['‍✘PATH_INFO'],如(rú)果你(♠<nǐ)的(de)主機(jī)環境有(yǒu)更特≠§殊的(de)設置,可(kě)以修改URL_∞→≠≈PATHINFO_FETCH參數(shù),改成你(nǐ♣€♠)的(de)環境配置對(duì)應的(de)PATH_INFO的(de)系統™>λ≠變量兼容獲取名稱,例如(rú):

  1. 'URL_PATHINFO_FETCH' => 'ORIG_PATH_INFO,REDIRECT_URL,其&<§&他(tā)參數(shù)…'

如(rú)果你(nǐ)的(de)環境沒有(yǒu)任何對(duì)應的(de) π§系統變量,那(nà)麽可(kě)以封裝一(yī)個(gè)獲取方法,例如(rú♦‌✘ ):

  1. function get_path_info(){
  2. // 根據你(nǐ)的(de)環境兼容獲取PATH_INFO ‌€具體(tǐ)代碼略
  3. return $path; // 直接返回獲取到(dào)的(de)PATH_INFO信Ω →息
  4. }

然後我們修改下(xià)URL_PATHINFO_FETCH≠₹₽參數(shù)的(de)配置值,改為(wèi):

  1. 'URL_PATHINFO_FETCH' => ':get_path_info'

配置後,系統會(huì)自(zì)動讀(dú)取get_path_info方法§δ來(lái)獲取$_SERVER['PATH_INFO']的(de)值。

配置你(nǐ)的(de)WEB服務器(qì)重寫規₹≈↕™則模拟PATH_INFO實現(xiàn)

如(rú)果你(nǐ)有(yǒu)服務器(qì)或者空(kōng)間& ♠≤(jiān)的(de)配置權限,可(kě)以考慮通(tōng)過配‍δ§置URL重寫規則來(lái)模拟實現(xiàn)。 具體(tǐ)£γ₽可(kě)以參考後面URL重寫中的(de)內(nèi)容。

采用(yòng)兼容URL模式運行(xíng)

這(zhè)是(shì)最壞的(de)方法,配置你(nǐ)的(d₹Ωγe)URL模式為(wèi)3(表示兼容URL模式)​÷ 然後在需要(yào)生(shēng)成URL的(de)地♠ <λ(dì)方采用(yòng)U方法動态生(shēng)成即可(kě)¶÷£。