Коллеги, добрый день! есть длиннючий конф с чёртовой тучей всяких

хитровымудренных реврайтов и проксипассов на локейшенах, нужно (если грубо) редиректить с /asd на /asd/, и с /a.s/d?var=1 на /a.s/d/?var=1, сделал так:
# Первое правило для URL без / и с GET параметрами, исключая /rest, /upload, /_next и URL с точкой справа от последнего слеша
location ~ ^((?!/rest|/upload|/_next|^.*/[^?/]+\.[^?/]+$)[^\?]*[^/])\?(.*)$ {
return 301 https://$host$1/$is_args$args;
}
# Второе правило для URL без / и без GET параметров, исключая /rest, /upload, /_next и URL с точкой справа от последнего слеша
location ~ ^((?!/rest|/upload|/_next|^.*/[^?/]+\.[^?/]+$)[^\?]*[^/])$ {
return 301 https://$host$1/$is_args$args;
}

Почти работает: ретурн не возвращает моментально клиенту редирект, а успевает его испортить нижележащими правилами, до которых даже не должно доходить: когда есть матч с этими 2 локейшенами, нужно просто сразу отдать 301 и закрыть коннект. ЧЯДНТ?

6 ответов

19 просмотров

1. прочитай правила, пожалуйста 2. конфиги - на pastebin.com 3. включи debug_connection и посмотри, что происходит

Pavel-Tarasov Автор вопроса
kiosaku
1. прочитай правила, пожалуйста 2. конфиги - на pa...

тут, собственно, конф и не нужен, суть вопроса - можно ли как-то тут же вернуть 301, и тут же закрыть соединение, не ломая локейшен дальнейшими реврайтами? или почему return допускает обработку ниже по конфигу, а не завершает обработку соединения сразу? по доке вроде бы это сразу на return должно происходить, а у меня дальнейшие реврайты успевают урл поломать

Pavel Tarasov
тут, собственно, конф и не нужен, суть вопроса - м...

теперь перечитай то, что ты написал и осознай, что написал х... ерунду

Без человеческого/живого блока location сложно подсказать. Само по себе, директива location имеет одну особенность: Если location задан префиксной строкой со слэшом в конце и запросы обрабатываются при помощи proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass или grpc_pass, происходит специальная обработка. В ответ на запрос с URI равным этой строке, но без завершающего слэша, будет возвращено постоянное перенаправление с кодом 301 на URI с добавленным в конец слэшом. Если такое поведение нежелательно, можно задать точное совпадение URI и location, например: location /user/ { proxy_pass http://user.example.com; } location = /user { proxy_pass http://login.example.com; } Возможно, будет полезно.

Pavel-Tarasov Автор вопроса

полностью согласен, понимал бы - и вопроса не возникло)

Pavel Tarasov
полностью согласен, понимал бы - и вопроса не возн...

вот и выполни вышеуказанные пункты. глядишь, и вопрос отвалится ...

Похожие вопросы

Обсуждают сегодня

upvote plz https://www.kaggle.com/code/bassetkerouche/swapping-face?scriptVersionId=207300096
benkerrouche Statoinary
1
Hi! Could you please upvote my new notebook? thanks a lot. https://www.kaggle.com/code/melissamonfared/anime-character-generation-dsgan-gan
məru
4
hi, Can you upvote? https://www.kaggle.com/code/durjoychandrapaul/rag-q-a-system-by-langchain-huggingface-for-pdf?scriptVersionId=204704280
A
1
-- Привет всем. -- Есть csv, проблема в том что он содержит очень много повторов по столбцам и по строкам. -- Решил перекинуть это в базу данных, чтобы было проще. Но я не ша...
Oleg Ivanov
1
Как считаете - вопрос на собесе: «Как быстрее всего запустить ec2 машину в aws (в чистом аккаунте) и показать вывод от любой команды с нее» не очень ли сложный для условного м...
Sergey
50
Hi could you please help me with my two new projects? https://www.kaggle.com/code/hesankazemnia/rice-image-classification-cnn-pytorch https://www.kaggle.com/code/hesankazemnia...
Hesan
6
Господа, у меня вопрос. Что вообще такое этот ваш data science и data scientists? А то гуглю, а мне какую-то расплывчатую фигню говорят.
Inkosta
44
Исходя из ваших комментариев, получается, что чтобы получить марты в CH из данных в PG, неправильно тянуть сырые данные в CH и там их обрабатывать, лепить справочники и джойни...
unhingedlunatic
42
Could you upvote and comment please? https://www.kaggle.com/code/tatianapetrushkevich/beginner-images https://www.kaggle.com/code/tatianapetrushkevich/python-for-beginners1 ...
Tazziyana
7
Может кто подсказать какие требования к изображениям для обучения Yolo v8? Как то разрешение, размер выделяемого обьекта в пикселях, оптимальное кол-во изображений. А то я пыт...
Владислав😎
16
Карта сайта