Направьте все подсекции в индекс. php с помощью NGINX - PullRequest
0 голосов
/ 09 марта 2020

Я бы хотел проанализировать URL в моем скрипте php, поэтому мне нужно все от указанного c местоположения до маршрута к индексу. php.

Однако я могу видеть только файл speci c php при переходе непосредственно к файлу.


Пример запроса;

  1. mycomain.ext / api
  2. mycomain.ext / api / user
  3. mycomain.ext / api / user / 19
  4. mycomain.ext / api / user / 19 / detail

должно все маршрут к api/index.php


Текущая конфигурация:

 location /api {
    root /usr/share/nginx/php/;
    index index.php index.html index.htm;
    try_files $uri $uri/ /index.php?$query_string;
  }

1 Ответ

1 голос
/ 09 марта 2020

Да, потому что он указывает на /index.php, а не на /api/index.php, как предполагалось. Просто измените ваши try_files на try_files /api/index.php?$args =404;. И у вас есть выделенное /api/index.php местоположение, куда вы отправляете запрос на php -fpm.


Собственная переменная отсутствует $query_string, есть только переменная $args для передачи всех аргументы. Переменная $request_uri не должна использоваться, только если она закодирована правильно. Ваш скрипт php должен использовать explode('?', $_SERVER['REQUEST_URI'], 2)[0] для обработки правильных запросов.
...