Welcome! Log In Create A New Profile

Advanced

Re[2]: Работа location с алиасом

Татьяна Орлова via nginx-ru
October 23, 2022 04:52PM
Добрый вечер! Попробую на практике этот вариант с такой конструкцией. Sunday, 23 October 2022, 11:37PM +03:00 from Maxim Dounin mdounin@mdounin.ru :

>Hello!
>
>On Sun, Oct 23, 2022 at 08:19:58PM +0300, izorkin@gmail.com wrote:
>
> Здравствуйте.
>
> Сейчас столкнулся с непонятной ошибкой.
>
> Тестовый пример:
> ```
> 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)/` работают одинаково.
>
>Директива "alias" заменяет совпавшую часть location'а на заданный
>путь. Если же location задан регулярным выражением, то "совпавшей
>части" как таковой нет, и это работает так (цитата по
>http://nginx.org/r/alias/ru ):
>
>: Если alias используется внутри location’а, заданного регулярным
>: выражением, то регулярное выражение должно содержать выделения, а
>: сам alias — ссылки на эти выделения (0.7.40), например:
>:
>: location ~ ^/users/(.+\.(?:gif|jpe?g|png))$ {
>: alias /data/w3/images/$1;
>: }
>
>То есть всё работает ровно так, как должно/документировано.
>
>Безусловно, в конкретном примере оно работает не очень ожидаемо
>для пользователя. Но, скажем так, это не единственный пример,
>когда location'ы, заданные регулярными выражениями, работают не
>очень ожидаемо для пользователя. Лучше использовать location'ы,
>заданные префиксной строкой, Игорь даже как-то доклад об этом
>делал.
>
>--
>Maxim Dounin
>http://mdounin.ru/
>_______________________________________________
>nginx-ru mailing list -- nginx-ru@nginx.org
>To unsubscribe send an email to nginx-ru-leave@nginx.org
_______________________________________________
nginx-ru mailing list -- nginx-ru@nginx.org
To unsubscribe send an email to nginx-ru-leave@nginx.org
Subject Author Posted

Работа location с алиасом

Anonymous User October 23, 2022 01:22PM

Re: Работа location с алиасом

Maxim Dounin October 23, 2022 04:38PM

Re[2]: Работа location с алиасом

Татьяна Орлова via nginx-ru October 23, 2022 04:52PM

Re: Работа location с алиасом

Anonymous User October 24, 2022 02:48AM

Re: Работа location с алиасом

Maxim Dounin October 24, 2022 11:50AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 313
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready