2016-09-26 73 views
0

我使用目前發送帶有「.PHP」到PHP引擎的所有要求如下:使用別名某些URL發送到不同的php目錄

root /var/www/public; 
index index.php; 

location/{ 
    try_files $uri $uri/ /index.php; 
} 

location ~ \.php$ { 
    try_files $uri =404; 

    fastcgi_pass php:9000; 
    include fastcgi_params; 

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_errors.log"; 
    fastcgi_buffers 16 16k; 
    fastcgi_buffer_size 32k; 
} 

我想獲得的所有請求/登錄/ ...被髮送到php服務器上的不同目錄。我收集別名和try_files不能一起工作。我已經使用其他「根」嘗試,但它不工作:

location ^~ /login/ { 
    root /var/www/login/etc/; 
    try_files $uri $uri/ /login$is_args$args; 
} 

location/{ 
    try_files $uri $uri/ /index.php; 
} 

location ~ \.php$ { 
    try_files $uri =404; 

    fastcgi_pass php:9000; 
    include fastcgi_params; 

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_errors.log"; 
    fastcgi_buffers 16 16k; 
    fastcgi_buffer_size 32k; 
} 

我怎樣才能得到這個工作,所以所有/登錄/ ...請求最終被在/ var/WWW /登錄服務/ etc目錄在PHP。謝謝。

回答

0

試試這個,

http { 
    ... 
    map $request_uri $rot{ 
     "~ /login" /var/www/login/etc/; 
     default <insert_default_root>; 
    } 

    server { 
     ... 
     root $rot; 
     ... 
     location/{...} 
     location ~ \.php$ {...} 
     ... 
    } 
    ... 
}