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