程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> thinkphp在低版本Nginx 下支持PATHINFO的方法分享

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

編輯:PHP綜合

最近在用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。)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved