2

ホスト構成ファイルの次の部分があります。

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;
}

nginx ルールのみを使用して $_SERVER['REQUEST_URI'] から「/backend」を削除するにはどうすればよいですか?

4

1 に答える 1

0

Use map directive to create a new request uri variable and then set fastcgi_param REQUEST_URI using this new variable. Tested and it works.

### 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;
  }
}
于 2013-04-02T05:26:32.723 に答える