Nginx配置二級子目錄示例

本配置示例在ThinkPHP5 環境下親測有效,二級目錄配置與根目錄配置徹底獨立。主要是經過 ^~ 把sub路徑的路由所有接收過來,而後在子location裏面進行二次路由和解析,比較方便靈活。以前一直覺得location是不能嵌套的,經過此次實踐,發現這樣用的好處了,確實很方便。php

server {
    listen       80 ;

    index        index.php index.html;

    location ^~ /sub/ {
	set  $subroot /home/peaksite/public/;
        alias $subroot;
        if ( !-e $request_filename) {
            rewrite ^/sub/(.*)$ /sub/index.php/$1 last;
            break;
        }
        location ~ \.php {
            fastcgi_pass   127.0.0.1:9000;
            set $scriptname '';
            set $pathinfo '';

            if ( $uri ~ ^/sub/(.+\.php)($|/.+) ) {
                set $scriptname $1;
                set $pathinfo $2;
            }

            fastcgi_param  SCRIPT_FILENAME  $subroot/$scriptname;
            fastcgi_index    index.php?IF_REWRITE=1;
            fastcgi_param    PATH_INFO    $pathinfo;
            fastcgi_param    SCRIPT_FILENAME    $subroot/$scriptname;
            include fastcgi_params;
        }
    }

}
相關文章
相關標籤/搜索