thinkphp nginx php-fpm url rewrite 導致404 錯誤
之前thinkphp的系統部署在apache上,考慮到在並發性能nginx比apache強悍得多,所以在centos上以nginx+php-fpm模式重新部署了thinkphp系統,結果發現諸如
1 |
/index. 此類的url nginx會報404錯誤,但改成 |
/ home /user | /verify
前一種url nginx不支持,那為啥會不支持呢?要解決這個問題首先要明白thinkPHP的幾種url模式。 thinkPHP URL模式1. pathinfo 模式 1 |
user
/verify
這種url格式,需要伺服器支援pathinfo / ?s=/home/user/ verify |
去掉index.php的偽靜態模式 | 3.相容模式
普通的模式加s=/參數/或m=model&a=actionthinkPHP URL模式配置在檔案/Application/Common/conf.php 中修改URL_MODEL 的值 1'URL_MODEL'= > | 3
3 nginx pathinfo模式配置
nginx預設是不支援pathinfo模式的,需要手動新增rewrite規則來支援1. 開啟/nginx/conf/vhost目錄下的網站設定檔。
2. 在server節點中增加如下location規則:
2 3 45 | 67
#以index.php開頭的uri location | ~
if(!-e)$( | !- e )$ #將 pathinfo模式的uri改寫成普通模式 rewrite ^/index.php (.*)$ /index.php?s= $1
} 3. 重新載入nginx設定資訊
|