Если location задан префиксной строкой со слэшом в конце и запросы обрабатываются при помощи proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass или grpc_pass, происходит специальная обработка. В ответ на запрос с URI равным этой строке, но без завершающего слэша, будет возвращено постоянное перенаправление с кодом 301 на URI с добавленным в конец слэшом.
absolute_redirect off;
server {
listen 80;
server_name *.example.com;
return 301 https://$host$request_uri;
}
При поиске виртуального сервера по имени, если имени соответствует несколько из указанных вариантов, например, одновременно подходят и имя с маской, и регулярное выражение, будет выбран первый подходящий вариант в следующем порядке приоритета:
- точное имя
- самое длинное имя с маской в начале, например “*.example.com”
- самое длинное имя с маской в конце, например “mail.*”
- первое подходящее регулярное выражение (в порядке следования в конфигурационном файле)
server {
server_name ~^(?<dynamic>[a-z0-9\-]+)\.example.com$;
...
}
server {
server_name stage1.example.com;
....
}
...
ложными значениями переменной являются пустая строка или “0”;
listen 1.1.1.1:443;
, а во втором listen 443;
(что эквивалентно listen *:443;
).location ~ /vkbot/ {
root /home/www/vkbot/;
try_files $uri $uri/ /index.php?$args;
index index.php index.html;
...
}
curl http://swight.live/vkbot/
nginx будет искать файлы в папке /home/www/vkbot/vkbot/. Не то что вы хотели, верно?location /vkbot/ {
root /home/www/;
try_files $uri $uri/ /vkbot/index.php?$args;
index index.php index.html;
...
}
location / {
if ($arg_p = 59) {
return 302 /work-release-form/;
}
}