2012-11-03 42 views
2

我有一個主機配置文件的以下部分。nginx + php-fpm。如何重寫?

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

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

location ~ \.php$ { 
    include    fastcgi_params; 
    fastcgi_pass  127.0.0.1:9000; 
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name; 
} 

我怎樣才能從$ _ SERVER [ 'REQUEST_URI']只使用nginx的規則中移除 「/後端」?

回答

0

使用map指令創建一個新的請求uri變量,然後使用這個新變量設置fastcgi_param REQUEST_URI。經過測試,它的工作原理。

### update REQUEST_URI 
map $request_uri $new_request_uri { 
    default $request_uri;    # for frontend request, still use $request_uri 
    ~^/backend(?P<suffix>.*)$ $suffix; # for backend request, only use the suffix after "/backend" 
} 

server { 
    ... 

    location ~ \.php$ { 
    include  fastcgi_params; 
    fastcgi_pass  127.0.0.1:9000; 
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    fastcgi_param REQUEST_URI  $new_request_uri; 
    } 
}