nginx配置php接口多版本,不同版本指向不同目录

问一个nginx配置php的问题

server {    listen       80;    server_name t.timophp.com;    charset utf-8;    access_log off;    
    location /v1 {        root /data/a/b;        index   index.php index.html index.htm;        if (!-e $request_filename) {            rewrite ^/v1/(.*)$ /index.php/$1 last;
        }
    }    location /v2/ {        root /data/c/d;        index   index.php index.html index.htm;        if (!-e $request_filename) {            rewrite ^/v2/(.*)$ /index.php/$1 last;
        }
    }    location ~ \.php(/|$) {        fastcgi_split_path_info ^(.+?\.php)(/.*)$;        fastcgi_pass   unix:/dev/shm/php-fpm.sock;        fastcgi_index  index.php;        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;        fastcgi_param  PATH_INFO        $fastcgi_path_info;        include        fastcgi_params;
    }    
    location ~ /\.ht {        deny  all;
    }
}

一个域名下面配置多个版本接口
版本一

路径/data/a/b

版本二

路径/data/c/d

版本三

路径/data/e/f

按照我的配置行不通


慕哥9229398
浏览 1916回答 2
2回答

米琪卡哇伊

你这个是报404了因为并不知道你的 /index.php 是在哪个目录把access_log打开,加上error_log看看吧试下以下配置server {    listen       80;    server_name t.timophp.com;    charset utf-8;    access_log off;    location /v1/ {        alias /data/a/b/;        index   index.php index.html index.htm;        if (!-e $request_filename) {            rewrite ^/v1/(.*)$ /index.php/$1 last;         }        location ~ \.php(/|$) {            fastcgi_split_path_info ^(.+?\.php)(/.*)$;            fastcgi_pass   unix:/dev/shm/php-fpm.sock;            fastcgi_index  index.php;            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;            fastcgi_param  PATH_INFO        $fastcgi_path_info;            include        fastcgi_params;         }     }    location /v2/ {        alias /data/c/d/;        index   index.php index.html index.htm;        if (!-e $request_filename) {            rewrite ^/v2/(.*)$ /index.php/$1 last;         }        location ~ \.php(/|$) {            fastcgi_split_path_info ^(.+?\.php)(/.*)$;            fastcgi_pass   unix:/dev/shm/php-fpm.sock;            fastcgi_index  index.php;            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;            fastcgi_param  PATH_INFO        $fastcgi_path_info;            include        fastcgi_params;         }     }    location ~ /\.ht {        deny  all;     } }
打开App,查看更多内容
随时随地看视频慕课网APP