Nginx 的兩個不同目錄

Nginx 的兩個不同目錄

我有兩個目錄在我的伺服器上,directory1其他目錄裡面,並且directory2有一個單一文件 index.php

我想訪問我index.phphttp://伺服器/( /var/www/directory2/index.php) 並且也能夠使所有目錄directory1可用http://伺服器/測試var/www/directory1/test) 例如。

我嘗試使用該配置,但無法存取該index.php文件:

server {
    server_name server;

    index index.php index.html index.htm;
    access_log /var/log/nginx/server.access.log;
    error_log /var/log/nginx/server.error.log;

    location / {
        root /var/www/directory1;
    }

    location ~ ^/index.php$ {
        root /var/www/directory2;
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_index index.php;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param APPLICATION_ENV production;
        include fastcgi_params;
    }
}

謝謝你的幫忙 !

答案1

我會做這個簡單的事:

root /var/www/directory1;

location = / {
    root /var/www/directory2;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $document_root/index.php;
    fastcgi_param APPLICATION_ENV production;
    include fastcgi_params;
}

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_index index.php;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param APPLICATION_ENV production;
    include fastcgi_params;
}

相關內容