[Nginx] URL veranderen die naar FastCGI gestuurd wordt

Pagina: 1
Acties:

Vraag


  • egonolieux
  • Registratie: Mei 2009
  • Laatst online: 06-01-2024

egonolieux

Professionele prutser

Topicstarter
Ik heb een PHP applicatie die een REST API heeft op het `/api` pad, terwijl de home page op `/` zit. Beide locaties zouden in Nginx met FastCGI geconfigureerd moeten worden. Het is de bedoeling dat het `/api` pad in de PHP applicatie bereikbaar is op een URL die begint met een versienummer, terwijl het `api` gedeelte uit de URL verwijderd moet worden. Bijvoorbeeld: /v1/resources (Nginx) => FastCGI => /api/resources (PHP).

Het probleem is dat ik met mijn huidige configuratie niet goed weet hoe ik het "/v1" gedeelte van de URL kan strippen terwijl het "/api" gedeelte toegevoegd moet worden. Bestaat er een makkelijke manier zonder alle FastCGI parameters aan te passen (als zelfs dat mogelijk is)?

Nginx configuration file:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
location /v1 {
    try_files $uri /index.php$is_args$args;
    add_header Cache-Control 'no-cache, must-revalidate, max-age=0';
    expires off;
}

location ~ ^/index\.php(/|$) {
    internal;
    include ./fastcgi_params;

    fastcgi_pass 192.168.1.10:9000;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    fastcgi_param DOCUMENT_ROOT $realpath_root;

    # Hier ergens moet de "/v1" van de URL verwijderd worden en "/api" als prefix toegevoegd worden.

    # Disable caching of dynamic content.
    add_header Last-Modified $date_local;
    add_header Cache-Control 'no-store, no-cache, must-revalidate, max-age=0';
    if_modified_since off;
    expires off;
    etag off;
}