thinkphp在低版本Nginx 下支援PATHINFO的方法分享

NO IMAGE

最近在用thinkphp做一個專案,基本完成後部署到nginx伺服器上才發覺nginx是不支援pathinfo的那麼我們如何來處理呢。

Nginx環境

在Nginx低版本中,是不支援PATHINFO的,但是可以通過在Nginx.conf(在/usr/local/nginx/conf/nginx.conf或者通過find / | grep nginx.conf來查詢位置)中配置轉發規則實現:在nginx配置檔案中新增:


location / { 
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
} 

其實內部是轉發到了ThinkPHP提供的相容模式的URL,利用這種方式,可以解決其他不支援PATHINFO的WEB伺服器環境。
如果你的ThinkPHP安裝在二級目錄,Nginx的偽靜態方法設定如下,其中youdomain是所在的目錄名稱。


location /youdomain/ {
if (!-e $request_filename){
rewrite ^/youdomain/(.*)$ /youdomain/index.php?s=$1 last;
}
} 

如:


location /thinkphp/ {
if (!-e $request_filename){
rewrite ^/thinkphp/(.*)$ /thinkphp/index.php?s=$1 last;
}
}

語法:rewrite regex replacement flag  (last     相當於apache裡面的[L]標記,表示rewrite。)

您可能感興趣的文章:

解決nginx不支援thinkphp中pathinfo的問題Nginx下配置pathinfo及ThinkPHP的URL Rewrite模式支援Nginx配置PATHINFO隱藏thinkphp index.phpUbuntu下Nginx配置ThinkPHP的Pathinfo和URl Rewrite模式nginx thinkphp下解決不支援pathinfo模式lnmp環境中如何為nginx開啟pathinfonginx中配置pathinfo模式示例nginx支援codeigniter的pathinfo模式url重寫配置寫法示例Nginx隱藏index.php和Pathinfo模式配置例子在nginx中配置pathinfo模式支援thinkphp的URL重寫讓Nginx支援ThinkPHP的URL重寫和PATHINFO的方法分享nginx配置支援php的pathinfo模式配置方法