Welcome! Log In Create A New Profile

Advanced

Re: 0.7.63 и выдача flv

Igor Sysoev
December 18, 2009 07:18AM
On Fri, Dec 18, 2009 at 02:57:41PM +0300, Sergey Shepelev wrote:

> 2009/12/18 Igor Sysoev <igor@sysoev.ru>:
> > On Fri, Dec 18, 2009 at 02:25:20PM +0300, Sergey Shepelev wrote:
> >
> >> 2009/12/18 Igor Sysoev <igor@sysoev.ru>:
> >> > On Fri, Dec 18, 2009 at 05:59:10AM -0500, Yury wrote:
> >> >
> >> >> ну то есть правильнее будет написать:
> >> >> location ~ \.flv(\?start=[0-9]+)?$ {...}
> >> >>
> >> >> как-то так....
> >> >
> >> > query string не тестируется в location. Потому что в query string можно
> >> > написать чего угодно, например:
> >> >
> >> >   /1.flv?чего-то-там&start=5
> >> >   /1.flv?start=5&ещё-чего-то-там
> >> >   /1.flv?как-то-так&start=5&ещё-чего-то-там
> >> >
> >> > И как это предлагается тетсировать ?
> >> >
> >>
> >> Вы же сами предлагали XSL синтаксис для расширения тестов location.
> >>
> >> Например, так.
> >>
> >> location ~ \.flv$
> >> ["start=" in $args]
> >> {
> >>   root /foo;
> >>   flv;
> >> }
> >
> > Да, но это не имеет отношения к обсуждаемой теме. Люди почему-то считают
> > в location нужно указывать аргументы. При этом почему-то не задумаываются,
> > что
> >   /index.php?user=one&page=1
> > можно записать и как
> >   /index.php?page=1&user=one
> >
>
> ээ... а /foo можно записать как /bar. Это всё разные урлы.

Потому что URI без query string однозначно определяет запрос, а
query string - нет. Например, /favicon.ico?чего-то-там - это всегда
файл /favicon.ico, независимо от "чего-то-там". А /baricon.ico
это всегда 404, тоже назависимо от "чего-то-там".

> Стандарт вообще говорит, что URI это path?query-string. Формат a=b&c=d
> это частный случай. Реально существует форум vbulletin, который делает
> урлы типа member.php?15. Это я к тому, что мы обсуждаем проблему
> одного частного случая. Даже если он сильно распространён.
>
> Интерпретация query аргументов в любом случае не на плечах nginx. В
> частности, и считать разный порядок кусков текста разделенных &
> разными или одинаковыми урлами. Ну, ещё хороший вариант - разбить
> $query_string по & и упорядочить получившийся массив строк по
> алфавиту. Тогда однозначно понятно, как именно писать location, но это
> медленно. По-моему, нормальный компромисс.

Нормальный компромисс - это

location ~ \.flv$ [ $arg_start ] {

> Уверен, что вы это всё знаете, но тогда я не понимаю озабоченности
> различием двух урлов выше. Будут обращаться, мол, у меня не матчится
> криво написанный локейшн?

Потому что тогда теряет смысл

location = / {

потому что придётся писать "~ ^/($|\?)". Зачем регекс там, где достаточно
простого сравнения.


--
Игорь Сысоев
http://sysoev.ru

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

0.7.63 и выдача flv

Yury December 18, 2009 05:31AM

Re: 0.7.63 и выдача flv

Ihalainen Nickolay December 18, 2009 05:34AM

Re: 0.7.63 и выдача flv

Yury December 18, 2009 05:59AM

Re: 0.7.63 и выдача flv

Igor Sysoev December 18, 2009 06:06AM

Re: 0.7.63 и выдача flv

Sergey Shepelev December 18, 2009 06:26AM

Re: 0.7.63 и выдача flv

Igor Sysoev December 18, 2009 06:36AM

Re: 0.7.63 и выдача flv

Sergey Averyanov December 18, 2009 06:44AM

Re: 0.7.63 и выдача flv

Igor Sysoev December 18, 2009 06:54AM

Re: 0.7.63 и выдача flv

Sergey Shepelev December 18, 2009 06:58AM

Re: 0.7.63 и выдача flv

Igor Sysoev December 18, 2009 07:18AM

Re: 0.7.63 и выдача flv

Yury December 18, 2009 07:00AM

Re: 0.7.63 и выдача flv

Yury December 18, 2009 08:41AM

Re: 0.7.63 и выдача flv

Дмитрий Андреев December 18, 2009 07:14AM

Re: 0.7.63 и выдача flv

Igor Sysoev December 18, 2009 07:18AM

Re: 0.7.63 и выдача flv

Дмитрий Андреев December 18, 2009 09:06AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 75
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready