1. 程式人生 > >thinkphp3.2.3之apache轉nginx偽靜態設定

thinkphp3.2.3之apache轉nginx偽靜態設定

本地開發的專案,使用的是apache伺服器,完成專案之後,之前搭建到的伺服器都是Windows伺服器上,從而上線,這次需要在寶塔上nginx伺服器上搭建,所以需要將apache的偽靜態更改為nginx:

1.在網上搜索到的基本上都不是自己理想狀態下的需求,搜尋到的方法基本上與比如說如下連結:

搜尋到的方法基本上與上面連結描述的一致,但是無論怎麼樣,URL的重寫都是失敗的,無法正常執行專案。

2.寶塔內建的偽靜態也是不能成功解決我遇到的這種問題:


選中其中的thinkphp也是無法正常執行專案!!!

最後想到了另一種解決辦法,thinkphp的四種URL模式中的重寫模式,最終解決了問題,解決流程:

1.開啟寶塔Apache轉Nginx工具:



2.開啟.htaccess檔案複製URL重寫模式並將此進行轉換:

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

</IfModule>


轉換之後為:

if (!-d $request_filename){
set $rule_0 1$rule_0;
}
if (!-f $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
rewrite ^/(.*)$ /index.php/$1 last;

}

將以上轉換過的程式碼複製到偽靜態修改框內儲存即可解決問題: