Назад | Перейти на главную страницу

Правила перезаписи дружественных URL-адресов для Nginx

Я недавно перешел с Apache на Nginx, и производительность безупречная.
Сайт представляет собой сервер загрузки (в основном) с настраиваемым скриптом PHP.

Вот некоторые примеры URL-адресов:

https://sub.example.com
https://sub.example.com/index.php?dir=foo1/
https://sub.example.com/index.php?dir=foo2/
https://sub.example.com/index.php?dir=foo2/bar1/
https://sub.example.com/index.php?dir=foo2/bar2/

Я хотел бы сделать их дружественными URL-адресами, чтобы они выглядели так:

https://sub.example.com
https://sub.example.com/foo1/
https://sub.example.com/foo2/
https://sub.example.com/foo2/bar1/
https://sub.example.com/foo2/bar2/

Обратите внимание на конечную косую черту, которую создает наш PHP-скрипт.
Каталог доступен с косой чертой или без нее (при ручном вводе URL-адреса) и должен быть доступен с этой косой чертой или без нее после перезаписи.

Есть идеи по поводу перезаписи конфигурации для Nginx?

Вы могли бы использовать try_files чтобы иметь значение для файлов, которые на самом деле существуют в вашей файловой системе, и URI, которые вы хотите указать в качестве параметра, например ваш / foo1 /.

location = / {
  try_files $uri /index.php?dir=$uri;
}

В PHP это приведет к:

echo $_GET['dir'];
# /foo1/