Здравствуйте форумчане, целый день провозился с проблемой, помогите
пожалуйста, буду признателен!
nginx version: nginx/1.14.0

стоит реврайт:
rewrite                                
^/sec/(.*)/(\d+)/((film|serial)/(.*))$ /stream/$3?md5=$1&expires=$2 last;

и есть этот локейшен:

location /stream {
                secure_link $arg_md5,$arg_expires;
                secure_link_md5 "$secure_link_expires$uri$remote_addr secret";

                if ($secure_link = "") {
                                return 200 "$query_string $arg_md5 $uri 
$secure_link_expires $uri
$remote_addr secret";
                }

                if ($secure_link = "0") {
                                return 410;
                }

                rewrite ^/stream/(.*)$ /content/vod/$1 break;
}

и запросы не приходят в локейшен /stream (Почему? я пологаю что не
передаются hash и expires, но даже без них должен обрабатываться запрос?),
стоит только добавить в регулярное вырожение экранирование \? (rewrite      
                          ^/sec/(.*)/(\d+)/((film|serial)/(.*))$
/stream/$3\?md5=$1&expires=$2 last;) - так все работает. НО! в переменную $3
добавляется этот слэш - "\", и расшифровка не происходит.. Что делать?
 
Интересно что даже без ЧПУ ссылок, ввида:

/stream/film/rampage.2018.720p/hls/720/index.m3u8?md5=sC-pYJ0gHU5PjJDi-18BOQ&expires=1530842792
запрос не работает тоже, в локейшен не попадает, добавляю \ перед ?
(вопросов) и все опять работает!!!

Надеюсь на вашу помощь. На другом сервере, на старой версии подобные
реврайты работают.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,280425,280425#msg-280425

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить