掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
thinkPHP是一款國(guó)產(chǎn)的敏捷web開發(fā)框架,特別是5.0版本就是為API開發(fā)而生的,不管是做純粹的web端項(xiàng)目,還是作為app的服務(wù)端都是非常不錯(cuò)的選擇。這款框架上手特別快,只要具備良好的開發(fā)基本功的同學(xué),基本上幾天內(nèi)就可以上手做項(xiàng)目了。今天項(xiàng)目組的小伙伴跟我說項(xiàng)目在開發(fā)環(huán)境是正常的,而到了測(cè)試環(huán)境則只有首頁能夠打開其他頁面全部404.
其實(shí)thinkPHP擁有非常完善的路由機(jī)制,所以對(duì)偽靜態(tài)是能夠很好支持的。而開發(fā)環(huán)境是Apache,測(cè)試環(huán)境是Nginx,在服務(wù)器上創(chuàng)建虛擬目錄后,通過Apache的組件可以直接加載網(wǎng)站目錄中的.htaccess文件進(jìn)行重寫URL;而Nginx默認(rèn)是不支持.htaccess的。首先我們可以知道thinkPHP在Nginx下的基礎(chǔ)偽靜態(tài)規(guī)則如下:
location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break; } }
然而如果直接這樣配置在服務(wù)器上,那么顯然也是不行的,因?yàn)槲覀兊捻?xiàng)目是放在二級(jí)目錄下面,而不是站點(diǎn)根目錄下面(因?yàn)闇y(cè)試的時(shí)候會(huì)調(diào)用公司網(wǎng)站的微信接口,保持測(cè)試項(xiàng)目跟實(shí)際已經(jīng)運(yùn)行的項(xiàng)目保持在同一個(gè)域名下)。其實(shí)也比較簡(jiǎn)單,其實(shí)跟我們寫apache的規(guī)則差不多。只需要把以上規(guī)則修改成如下即可:
location /jiewang/ { if (!-e $request_filename){ rewrite ^jiewang/(.*)$ /jiewang/index.php?s=$1 last; break; } }
是不是和寫apache規(guī)則特別類似呢?對(duì)了,其中的jiewang就是這個(gè)項(xiàng)目的目錄名稱,其實(shí)不僅僅是thinkPHP,這種思維和寫法也是適用于其他的框架的。
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流