2012-11-03 44 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; 
    } 
}