{{tag>nginx server}}

====== location ======

Вначале проверяются location'ы, заданные **префиксными строками** (префиксные location'ы). Среди них ищется максимальное совпадение. Затем проверяются **регулярные выражения**, в порядке их следования в конфигурационном файле. Проверка регулярных выражений прекращается после первого же совпадения, и используется соответствующая конфигурация. Если совпадение с регулярным выражением не найдено, то используется конфигурация максимально совпавшего префиксного location'а.

====== Группа 1 (допускаются вложенные locations) ======

О Повторяющихся локейшинах nginx сообщит в логах.


==== Полное совпадение ====

  * location = /dir/

==== Максимально возможное совпадение (после удачного совпадение не искать) ====

  * location ^~ /dir/

==== Пути ====

  * **root /var/www** - файлы будут искаться в /var/www/dir
  * **alias /var/www** - файлы будут искаться в /var/www

==== Вложенные локации ====

<code>
location /i/ {
  location ~* ^/i/(.)(.+\.gif)$ {
      alias  /images/$1$1$2;
  }
  return 404;
}
</code>
====== Группа 2 ======

==== Регулярные выражения (в порядке выполнения) ====

  * location ~ \.php$
  * location ~* \.php$ # (без учета регистра)

==== Пути ====


  * root /([a-z])
  * alias - /$1.img
====== Группа 3 ======

==== Именованные ====

Используется в rewrite


  * location @php

====== Подробно ======

  * = Точное соотвествие (Не имеет вложений)
  * ~ Регулярные выражения (с учётом регистра)
  * ~* Регулярные выражения (без учета регистра)
  * ^~ (Не имеет вложений)
  * @имя - именованный location (только для перенаправления в него запросов) (Не имеет вложений)
  * uri (совпадение с uri)

Примеры:

  * location = / {...}
  * location / {...}
  * location ^~ /images/ {...}
  * location ~* \.(gif|jpg|jpeg)$ {...}
  * location @rewrite {...}

====== Типичные ошибки ======

Если есть возможно, лучше не использовать

  * if - !!!при положительных ответах, будет отработан только последний
  * break
  * rewrite
