Работа location с алиасом
izorkin на gmail.com
izorkin на gmail.com
Вс Окт 23 17:19:58 UTC 2022
Здравствуйте.
Сейчас столкнулся с непонятной ошибкой.
Тестовый пример:
```
root /var/www;
location / {
try_files $uri =404;
}
location /test/ {
try_files $uri =404;
alias /var/test/;
}
```
Проверяю доступность тестового файла через curl:
```
curl --head -k https://example.com/test/example.txt
HTTP/2 200
...
```
Файл доступен. Лог отладки:
```
...
*302 test location: "/"
*302 test location: "test/"
*302 using configuration "/test/"
...
*302 http script var: "/test/example.txt"
*302 trying to use file: "example.txt" "/var/test/example.txt"
*302 try file uri: "/test/example.txt"
...
*302 http filename: "/var/test/example.txt"
...
*302 http2 output header: ":status: 200"
...
```
Меняю location `test` на такой вариант:
```
location ~ ^/(test|custom)/ {
try_files $uri =404;
alias /var/test/;
}
```
Теперь файл не доступен. По идее должно работать... Лог отладки:
```
...
*303 test location: "/"
*303 test location: ~ "^/(test|custom)/"
*303 using configuration "^/(test|custom)/"
...
*303 http script copy: "/var/test/"
*303 http script var: "/test/example.txt"
*303 trying to use file: "/test/example.txt" "/var/test//test/example.txt"
*303 trying to use file: "=404" "/var/test/=404"
*303 http finalize request: 404, "/test/example.txt?" a:1, c:1
*303 http special response: 404, "/test/example.txt?"
...
*303 http2 output header: ":status: 404"
...
```
Так и должно работать?
Только вот если убрать параметр `alias /var/test/;`, то `location /test/` и `location ~ ^/(test|custom)/` работают одинаково.
--
С уважением,
Izorkin mailto:izorkin на gmail.com
Подробная информация о списке рассылки nginx-ru