Регулярное выражение конфигурации NGINX в расположении

Регулярное выражение конфигурации NGINX в расположении

Имея более чем 15-летний опыт использования веб-сервера Apache, я хотел дать новому серверу шанс. ;) Я пытался подправить файлы конфигурации NGINX для краткости.

Сайт обычно перенаправляет весь трафик в определенный index.php, но у меня есть два каталога privacy, eulaкоторые содержат отдельные index.php, поэтому для этих двух каталогов я хочу, чтобы он просто вызывал файлы в каталогах.

Например:

location ~ /(privacy|eula) {
  try_files $uri $uri/ =404;
}

заставляет мой браузер загружать содержимое страниц в виде файла .dms.

Если я разделю локацию на две части следующим образом:

location /privacy {
  try_files $uri $uri/ =404;
}

location /eula {
  try_files $uri $uri/ =404;
}

Работает так, как и задумано.

Я поискал и также нашел предложение сделать это таким образом, но это имело тот же эффект location ~ ^/(privacy|eula). Мне просто придется жить с тем фактом, что NGINX очень многословен, или что я делаю не так?

Спасибо

решение1

Theрегулярное выражение locationБлоки оцениваются по порядку, пока не будет найдено совпадение.

В вашем случае вы разместили location ~ /(privacy|eula)выше location ~ \.php$блок, так что подобный URI /eula/index.phpне будет обработан правильным местоположением и вместо этого будет загружен.

Поместите location ~ /(privacy|eula)блокпослеблок location ~ \.php$.

Видетьэтот документдля получения подробной информации.

Связанный контент