Как пропустить каталог в URI с помощью NGINX?

Итак, я видел этот ответ, но он не казался связанные с этим вопросом.

Моя ситуация такова: на моем веб-сайте есть каталог с именем mywebsite.com/indev/dist (поскольку dist — это папка сборки). Я хочу, чтобы все файлы в mywebsite.com/indev/dist отображались и работали так, как будто папки dist вообще не существовало.

Например, если я запрошу mywebsite.com/indev/index45.php, файл будет расположен по адресу /indev/dist/index45.php.

Вот что я пробовал до сих пор:

location ~ .*\/indev\/dist.* {
  try_files $uri $uri/ =404;
}

location ~ .*\/indev.* {
  rewrite ^\/indev\/(.*) /indev/dist/$1 break;
}

Это прекрасно работает с одним существенным недостатком: файлы php не запускаются, они идут по исходному адресу, который в ответ дает 404. Есть ли способ сделать то, что я использую, используя конфигурацию NGINX без каких-либо серьезных недостатков (или необходимости создавать ненужные правила (например, просто для обработки файлов php)?)


person FireController1847    schedule 22.04.2018    source источник
comment
Все ли URI начинаются с /indev? Итак, то, что вы пытаетесь сделать, это псевдоним /indev/ для /indev/dist/. Для работы PHP вам нужно будет использовать вложенный файл location. См. этот ответ.   -  person Richard Smith    schedule 22.04.2018
comment
Потрясающий! Это делает именно то, что мне нужно. Огромное спасибо!   -  person FireController1847    schedule 22.04.2018