Thinkphp在Nginx上的配置

2021-06-13 07:47:15 字數 1751 閱讀 2298

thinkphp配置檔案:如果在nginx伺服器上,最好還是把  'url_model' =>      2, 設定上,不然出現的問題奇奇怪怪。

最新更新,在看nginx文件的時候,發現它自帶有pathinfo的處理方法:

syntax:

fastcgi_split_path_inforegex;

default:

—context:

location

fastcgi_split_path_info regex 定義乙個正規表示式,可以抓取乙個值給變數$fastcgi_path_info,正規表示式一共可以抓取2個值,第乙個是$fastcgi_script_name。第二個是$fastcgi_path_info 。

location ~ \.php/?.*$

這樣就可以輕鬆的解決thinkphp的pathinfo問題了。如果你專案還需要隱藏index.php或者使用了路由。在執行php檔案的location前邊加上乙個location重寫:

#rewrite

location /blogforit/

break;

}

1.由於nginx預設不支援pathinfo模式,如果你的**路徑如:以斜槓劃分,則nginx預設把其當為乙個目錄,就會出現乙個404錯誤,找不到檔案,具體可以檢視error日誌。

解決方法:以下是我的最簡單的配置檔案。

location ~ \.php/?.*$ 

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param script_name $real_script_name;

fastcgi_param script_filename $document_root$real_script_name;

fastcgi_param path_info $path_info;

include /usr/local/nginx/conf/fastcgi_params;

}

2.我們使用了thinkphp的路由轉向和隱藏index.php,需要修改如下nginx配置:

假如我的專案目錄是:/usr/local/nginx/html/blogforit 。注(我的訪問模式都是從localhost訪問的,如:localhost/blogforit,具體如果有網域名稱訪問的具體配置)

我們就需要修改nginx配置檔案:

location /blogforit/ 

break;

}

location ~ \.php/?.*$ 

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param script_name $real_script_name;

fastcgi_param script_filename $document_root$real_script_name;

fastcgi_param path_info $path_info;

include /usr/local/nginx/conf/fastcgi_params;

}

在Nginx上配置ThinkPHP專案

其實,要解決nginx不支援pathinfo的問題,有兩個解決思路,一是不使用pathinfo模式,二是修改nginx的配置檔案,使它支援pathinfo。為了使問題簡單化,我選擇了第一種方式,因為就第二種方式,我查了很多資料,發現大家的方法不盡相同,有的還差別很大,容易造成誤導,所以我選擇從簡出發...

thinkphp部署在nginx上的路由規則配置

網上通用解決方法的配置如下 plain view plain copy server location php fastcgi param path info path info fastcgi param script filename document root fastcgi script n...

thinkphp部署在nginx上的路由規則配置

網上通用解決方法的配置如下 plain view plain copy server location php fastcgi param path info path info fastcgi param script filename document root fastcgi script n...