ALT Linux sysadmins discussion
 help / color / mirror / Atom feed
* [Sysadmins] Помогите с nginx rewrite
@ 2011-01-25 13:20 Yuri Khachaturyan
  2011-01-25 13:27 ` Денис Смирнов
  2011-01-25 13:32 ` Slava Dubrovskiy
  0 siblings, 2 replies; 28+ messages in thread
From: Yuri Khachaturyan @ 2011-01-25 13:20 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

Добрый день!
Помогите пожалуйста с rewrite в nginx, никак не могу заставить
работать правило (переделываю из apache).

Вариант для apache:

                RewriteEngine on
                RewriteRule
^media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$ media/$1/$2/$4.$5?$3
[QSA]


Попытка для nginx:

location /media {
   rewrite ^/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$
/media/$1/$2/$4.$5?$3 break;
}

Выдает ошибку:

Checking configuration sanity for nginx:  [emerg]: directive "rewrite"
is not terminated by ";" in /etc/nginx/sites-enabled.d/test.conf:9
configuration file /etc/nginx/nginx.conf test failed


Смысл:

надо из
/media/video/air_subjects/2010-01/01/t/123123/82.flv

получить

/media/video/air_subjects/2010-01/01/82.flv?123123



-- 
С уважением,
Хачатурян Юрий (yukh@yukh.ru)

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 13:20 [Sysadmins] Помогите с nginx rewrite Yuri Khachaturyan
@ 2011-01-25 13:27 ` Денис Смирнов
  2011-01-25 13:31   ` Yuri Khachaturyan
  2011-01-25 13:32 ` Slava Dubrovskiy
  1 sibling, 1 reply; 28+ messages in thread
From: Денис Смирнов @ 2011-01-25 13:27 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

[-- Attachment #1: Type: text/plain, Size: 488 bytes --]

On Tue, Jan 25, 2011 at 04:20:28PM +0300, Yuri Khachaturyan wrote:

YK> location /media {
YK>    rewrite ^/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$
YK> /media/$1/$2/$4.$5?$3 break;
YK> }

Цитата из документации:

"Если в регулярном выражении встречаются символы "}" или ";", то всё
выражение нужно заключить в одинарные или двойные кавычки."

-- 
С уважением, Денис

http://mithraen.ru/
----------------------------------------------------------------------------

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 13:27 ` Денис Смирнов
@ 2011-01-25 13:31   ` Yuri Khachaturyan
  0 siblings, 0 replies; 28+ messages in thread
From: Yuri Khachaturyan @ 2011-01-25 13:31 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

Спасибо, вроде сработало!

25 января 2011 г. 16:27 пользователь Денис Смирнов
<mithraen@freesource.info> написал:
>
> Цитата из документации:
>
> "Если в регулярном выражении встречаются символы "}" или ";", то всё
> выражение нужно заключить в одинарные или двойные кавычки."

-- 
С уважением,
Хачатурян Юрий (yukh@yukh.ru)

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 13:20 [Sysadmins] Помогите с nginx rewrite Yuri Khachaturyan
  2011-01-25 13:27 ` Денис Смирнов
@ 2011-01-25 13:32 ` Slava Dubrovskiy
  2011-01-25 13:39   ` Yuri Khachaturyan
  1 sibling, 1 reply; 28+ messages in thread
From: Slava Dubrovskiy @ 2011-01-25 13:32 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

[-- Attachment #1: Type: text/plain, Size: 1123 bytes --]

 25.01.2011 15:20, Yuri Khachaturyan пишет:
> Добрый день!
> Помогите пожалуйста с rewrite в nginx, никак не могу заставить
> работать правило (переделываю из apache).
>
> Вариант для apache:
>
>                 RewriteEngine on
>                 RewriteRule
> ^media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$ media/$1/$2/$4.$5?$3
> [QSA]
>
>
> Попытка для nginx:
>
> location /media {
>    rewrite ^/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$
> /media/$1/$2/$4.$5?$3 break;

    rewrite ^/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$
/media/$1/$2/$4.$5?$3 ;
    break;

> }
>
> Выдает ошибку:
>
> Checking configuration sanity for nginx:  [emerg]: directive "rewrite"
> is not terminated by ";" in /etc/nginx/sites-enabled.d/test.conf:9
> configuration file /etc/nginx/nginx.conf test failed
>
>
> Смысл:
>
> надо из
> /media/video/air_subjects/2010-01/01/t/123123/82.flv
>
> получить
>
> /media/video/air_subjects/2010-01/01/82.flv?123123
>
>
>


-- 
WBR,
Dubrovskiy Vyacheslav


[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 5525 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 13:32 ` Slava Dubrovskiy
@ 2011-01-25 13:39   ` Yuri Khachaturyan
  2011-01-25 15:52     ` Денис Смирнов
  0 siblings, 1 reply; 28+ messages in thread
From: Yuri Khachaturyan @ 2011-01-25 13:39 UTC (permalink / raw)
  To: slava, ALT Linux sysadmins' discussion

25 января 2011 г. 16:32 пользователь Slava Dubrovskiy
<slava@tangramltd.com> написал:
>    rewrite ^/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$
> /media/$1/$2/$4.$5?$3 ;
>    break;

Тоже ошибка. Вариант от Дениса исправил ошибку, но rewrite все равно
не срабатывает.

-- 
С уважением,
Хачатурян Юрий (yukh@yukh.ru)

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 13:39   ` Yuri Khachaturyan
@ 2011-01-25 15:52     ` Денис Смирнов
  2011-01-25 15:56       ` Yuri Khachaturyan
  0 siblings, 1 reply; 28+ messages in thread
From: Денис Смирнов @ 2011-01-25 15:52 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

[-- Attachment #1: Type: text/plain, Size: 347 bytes --]

On Tue, Jan 25, 2011 at 04:39:39PM +0300, Yuri Khachaturyan wrote:

YK> Тоже ошибка. Вариант от Дениса исправил ошибку, но rewrite все равно
YK> не срабатывает.

попробуйте в своем варианте заменить break на last

-- 
С уважением, Денис

http://mithraen.ru/
----------------------------------------------------------------------------

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 15:52     ` Денис Смирнов
@ 2011-01-25 15:56       ` Yuri Khachaturyan
  2011-01-25 16:13         ` Yuriy Kashirin
                           ` (2 more replies)
  0 siblings, 3 replies; 28+ messages in thread
From: Yuri Khachaturyan @ 2011-01-25 15:56 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

25 января 2011 г. 18:52 пользователь Денис Смирнов
<mithraen@freesource.info> написал:
> On Tue, Jan 25, 2011 at 04:39:39PM +0300, Yuri Khachaturyan wrote:
>
> YK> Тоже ошибка. Вариант от Дениса исправил ошибку, но rewrite все равно
> YK> не срабатывает.
>
> попробуйте в своем варианте заменить break на last

Пробовал уже все, что только возможно.
Перловый скрипт с таким же регекспом отрабатывает, внутри nginx - нет.
Очень похоже, что проблема в самом nginx или libpcre. Пробовал
пересобрать последние версии stable и devel - результат тот же:

2011/01/25 18:52:38 [notice] 30896#0: *21
"^/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$
/media/$1/$2/$4.$5?$3" does not match
"/media/video/air_subjects/2010-01/04/t/234234/12392.flv", client:
213.243.84.2, server: , request: "GET
/media/video/air_subjects/2010-01/04/t/234234/12392.flv HTTP/1.1"


-- 
С уважением,
Хачатурян Юрий (yukh@yukh.ru)

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 15:56       ` Yuri Khachaturyan
@ 2011-01-25 16:13         ` Yuriy Kashirin
  2011-01-25 16:30           ` Yuri Khachaturyan
  2011-01-25 16:38         ` Денис Смирнов
  2011-01-25 16:40         ` Денис Смирнов
  2 siblings, 1 reply; 28+ messages in thread
From: Yuriy Kashirin @ 2011-01-25 16:13 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

On Вторник 25 января 2011, Yuri Khachaturyan wrote:
> 25 января 2011 г. 18:52 пользователь Денис Смирнов
> 
> <mithraen@freesource.info> написал:
> > On Tue, Jan 25, 2011 at 04:39:39PM +0300, Yuri Khachaturyan
> > wrote:
> > 
> > YK> Тоже ошибка. Вариант от Дениса исправил ошибку, но rewrite
> > все равно YK> не срабатывает.
> Пробовал уже все, что только возможно.
> Перловый скрипт с таким же регекспом отрабатывает, внутри nginx -
> нет. Очень похоже, что проблема в самом nginx или libpcre.
> Пробовал пересобрать последние версии stable и devel - результат
> тот же:
> 
> 2011/01/25 18:52:38 [notice] 30896#0: *21
> "^/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$
> /media/$1/$2/$4.$5?$3" does not match
> "/media/video/air_subjects/2010-01/04/t/234234/12392.flv",

А вы что в кавычки заключили? Все правило? Или все таки только 
регексп?

-- 
 Best regards
 Yuriy Kashirin


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 16:13         ` Yuriy Kashirin
@ 2011-01-25 16:30           ` Yuri Khachaturyan
  2011-01-26  3:09             ` Денис Смирнов
  0 siblings, 1 reply; 28+ messages in thread
From: Yuri Khachaturyan @ 2011-01-25 16:30 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

25 января 2011 г. 19:13 пользователь Yuriy Kashirin <yura@emict.com> написал:
>> 2011/01/25 18:52:38 [notice] 30896#0: *21
>> "^/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$
>> /media/$1/$2/$4.$5?$3" does not match
>> "/media/video/air_subjects/2010-01/04/t/234234/12392.flv",
>
> А вы что в кавычки заключили? Все правило? Или все таки только
> регексп?

Только регексп, есстественно.

При всем при этом, этот же регексп в apache2 отлично работает, а также
перловый скрипт:

#!/usr/bin/perl

use strict;

my $a = "/media/video/air_subjects/2010-01/04/t/234234/12392.flv";
print "$a\n";
$a =~ s|/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$|/media/$1/$2/$4.$5?$3|;
print $a;

тоже все отрабатывает как надо.

nginx в режиме debug же пишет does not match.

-- 
С уважением,
Хачатурян Юрий (yukh@yukh.ru)

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 15:56       ` Yuri Khachaturyan
  2011-01-25 16:13         ` Yuriy Kashirin
@ 2011-01-25 16:38         ` Денис Смирнов
  2011-01-25 16:42           ` Yuri Khachaturyan
  2011-01-25 16:40         ` Денис Смирнов
  2 siblings, 1 reply; 28+ messages in thread
From: Денис Смирнов @ 2011-01-25 16:38 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

[-- Attachment #1: Type: text/plain, Size: 1302 bytes --]

On Tue, Jan 25, 2011 at 06:56:25PM +0300, Yuri Khachaturyan wrote:

YK> Пробовал уже все, что только возможно.
YK> Перловый скрипт с таким же регекспом отрабатывает, внутри nginx - нет.
YK> Очень похоже, что проблема в самом nginx или libpcre. Пробовал
YK> пересобрать последние версии stable и devel - результат тот же:
 YK> "^/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$
 YK> /media/$1/$2/$4.$5?$3" does not match
 YK> "/media/video/air_subjects/2010-01/04/t/234234/12392.flv", client:

Гм. На глаз они подходят, разве что если / не попадает под . (что
редкостный бред, но можно проверить).

Ну и когда я отлаживаю регекспы, то я сначала пишу что-то простое
(фактически точное совпадение с той строкой которая сранивается), а уже
потом начинаю ее править и превуращать в regexp.

 YK> 213.243.84.2, server: , request: "GET
 YK> /media/video/air_subjects/2010-01/04/t/234234/12392.flv HTTP/1.1"
 YK> 
 YK> 
 YK> -- 
 YK> С уважением,
 YK> Хачатурян Юрий (yukh@yukh.ru)
 YK> _______________________________________________
 YK> Sysadmins mailing list
 YK> Sysadmins@lists.altlinux.org
 YK> https://lists.altlinux.org/mailman/listinfo/sysadmins
-- 
С уважением, Денис

http://mithraen.ru/
----------------------------------------------------------------------------

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 15:56       ` Yuri Khachaturyan
  2011-01-25 16:13         ` Yuriy Kashirin
  2011-01-25 16:38         ` Денис Смирнов
@ 2011-01-25 16:40         ` Денис Смирнов
  2011-01-25 16:43           ` Yuri Khachaturyan
  2 siblings, 1 reply; 28+ messages in thread
From: Денис Смирнов @ 2011-01-25 16:40 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

[-- Attachment #1: Type: text/plain, Size: 592 bytes --]

On Tue, Jan 25, 2011 at 06:56:25PM +0300, Yuri Khachaturyan wrote:

YK> Пробовал уже все, что только возможно.
YK> Перловый скрипт с таким же регекспом отрабатывает, внутри nginx - нет.
YK> Очень похоже, что проблема в самом nginx или libpcre. Пробовал
YK> пересобрать последние версии stable и devel - результат тот же:

О, в соседнем письме правильный ответ на задачку :)

На будущее -- лучше при отладки таких вещей хотя бы аттачить конфиг к
письму.

-- 
С уважением, Денис

http://mithraen.ru/
----------------------------------------------------------------------------

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 16:38         ` Денис Смирнов
@ 2011-01-25 16:42           ` Yuri Khachaturyan
  0 siblings, 0 replies; 28+ messages in thread
From: Yuri Khachaturyan @ 2011-01-25 16:42 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

25 января 2011 г. 19:38 пользователь Денис Смирнов
<mithraen@freesource.info> написал:

> Гм. На глаз они подходят, разве что если / не попадает под . (что
> редкостный бред, но можно проверить).
>
> Ну и когда я отлаживаю регекспы, то я сначала пишу что-то простое
> (фактически точное совпадение с той строкой которая сранивается), а уже
> потом начинаю ее править и превуращать в regexp.

Повторюсь, в apache оно работает, и perl скрипт с этим же regex
отрабатывает как нужно... Тут какая то проблема в nginx похоже...


-- 
С уважением,
Хачатурян Юрий (yukh@yukh.ru)

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 16:40         ` Денис Смирнов
@ 2011-01-25 16:43           ` Yuri Khachaturyan
  2011-01-25 18:17             ` Afanasov Dmitry
  2011-01-26  3:07             ` Денис Смирнов
  0 siblings, 2 replies; 28+ messages in thread
From: Yuri Khachaturyan @ 2011-01-25 16:43 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

25 января 2011 г. 19:40 пользователь Денис Смирнов
<mithraen@freesource.info> написал:
> О, в соседнем письме правильный ответ на задачку :)
>
> На будущее -- лучше при отладки таких вещей хотя бы аттачить конфиг к
> письму.
>
Конфиг чего? Всего nginx или достаточно только секции server?

server {
	listen 194.67.52.114:80;
	server_name test.poisk.vid.ru;
	error_log   /var/log/nginx/error.log debug	;
	location / {
		root /home/wm/www;
		index index.php;
		rewrite "^/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$
/media/$1/$2/$4.$5?$3" break;
	}
	location ~ \.php$ {
		fastcgi_pass	unix:/var/run/php5-fpm/php5-fpm.sock;
		fastcgi_index	index.php;
		fastcgi_param	SCRIPT_FILENAME	/home/wm/www$fastcgi_script_name;
		include		fastcgi_params;
	}
}




-- 
С уважением,
Хачатурян Юрий (yukh@yukh.ru)

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 16:43           ` Yuri Khachaturyan
@ 2011-01-25 18:17             ` Afanasov Dmitry
  2011-01-25 18:21               ` Yuri Khachaturyan
  2011-01-26  3:07             ` Денис Смирнов
  1 sibling, 1 reply; 28+ messages in thread
From: Afanasov Dmitry @ 2011-01-25 18:17 UTC (permalink / raw)
  To: sysadmins

[-- Attachment #1: Type: text/plain, Size: 655 bytes --]

On Tue, Jan 25, 2011 at 07:43:21PM +0300, Yuri Khachaturyan wrote:
> 25 января 2011 г. 19:40 пользователь Денис Смирнов
> <mithraen@freesource.info> написал:
> > О, в соседнем письме правильный ответ на задачку :)
> >
> > На будущее -- лучше при отладки таких вещей хотя бы аттачить конфиг к
> > письму.
> >
> Конфиг чего? Всего nginx или достаточно только секции server?
> 
> 		rewrite "^/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$ /media/$1/$2/$4.$5?$3" break;
какая прелесть. rewrite "..." "..." break

а я б вообще переписал как
rewrite "^(/media/.*/t/)(\d+)/(\d+\.\w{3})$ /$1/$3?$2" break;

-- 
 С уважением
 Афанасов Дмитрий

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 18:17             ` Afanasov Dmitry
@ 2011-01-25 18:21               ` Yuri Khachaturyan
  2011-01-25 18:39                 ` Afanasov Dmitry
  0 siblings, 1 reply; 28+ messages in thread
From: Yuri Khachaturyan @ 2011-01-25 18:21 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

25 января 2011 г. 21:17 пользователь Afanasov Dmitry
<ender@altlinux.org> написал:
>> Конфиг чего? Всего nginx или достаточно только секции server?
>>
>>               rewrite "^/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$ /media/$1/$2/$4.$5?$3" break;
> какая прелесть. rewrite "..." "..." break
>
> а я б вообще переписал как
> rewrite "^(/media/.*/t/)(\d+)/(\d+\.\w{3})$ /$1/$3?$2" break;
>
Не помогло:

2011/01/25 21:18:17 [notice] 3107#0: *35
"^(/media/.*/t/)(\d+)/(\d+\.\w{3})$ /$1/$3?$2" does not match
"/media/video/air_subjects/2010-01/04/t/234234/12392.flv", client:
213.243.84.2, server: test.poisk.vid.ru, request: "GET
/media/video/air_subjects/2010-01/04/t/234234/12392.flv HTTP/1.1",
host: "test.poisk.vid.ru"

2011/01/25 21:18:17 [error] 3107#0: *35 open()
"/home/wm/www/media/video/air_subjects/2010-01/04/t/234234/12392.flv"
failed (2: No such file or directory), client: 213.243.84.2, server:
test.poisk.vid.ru, request: "GET
/media/video/air_subjects/2010-01/04/t/234234/12392.flv HTTP/1.1",
host: "test.poisk.vid.ru"

Файл реально лежит в /media/video/air_subjects/2010-01/04/12392.flv, с
помощью данного rewrite нужно преобразовать путь, который
запрашивается в этот и передать параметр через ?, который идет сразу
после /t/ ...

-- 
С уважением,
Хачатурян Юрий (yukh@yukh.ru)

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 18:21               ` Yuri Khachaturyan
@ 2011-01-25 18:39                 ` Afanasov Dmitry
  2011-01-25 18:43                   ` Yuri Khachaturyan
  2011-01-25 18:47                   ` Yuri Khachaturyan
  0 siblings, 2 replies; 28+ messages in thread
From: Afanasov Dmitry @ 2011-01-25 18:39 UTC (permalink / raw)
  To: sysadmins

[-- Attachment #1: Type: text/plain, Size: 897 bytes --]

On Tue, Jan 25, 2011 at 09:21:15PM +0300, Yuri Khachaturyan wrote:
> 25 января 2011 г. 21:17 пользователь Afanasov Dmitry
> <ender@altlinux.org> написал:
> >> Конфиг чего? Всего nginx или достаточно только секции server?
> >>
> >>               rewrite "^/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$ /media/$1/$2/$4.$5?$3" break;
> > какая прелесть. rewrite "..." "..." break
> >
> > а я б вообще переписал как
> > rewrite "^(/media/.*/t/)(\d+)/(\d+\.\w{3})$ /$1/$3?$2" break;
> >
> Не помогло:
брр, сам сказал про прелесть и сам же повторил. смотрите за кавычками:

rewrite "^(/media/.*/t/)(\d+)/(\d+\.\w{3})$" "$1$3?$2";

специально проверил:

*1 "^(/media/.*/t/)(\d+)/(\d+\.\w{3})$" matches "/media/video/air_subjects/2010-01/01/t/123123/82.flv"
*1 rewritten data: "/media/video/air_subjects/2010-01/01/t//82.flv", args: "123123"

-- 
 С уважением
 Афанасов Дмитрий

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 18:39                 ` Afanasov Dmitry
@ 2011-01-25 18:43                   ` Yuri Khachaturyan
  2011-01-25 18:47                     ` Afanasov Dmitry
  2011-01-26  9:11                     ` Yuriy Kashirin
  2011-01-25 18:47                   ` Yuri Khachaturyan
  1 sibling, 2 replies; 28+ messages in thread
From: Yuri Khachaturyan @ 2011-01-25 18:43 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

25 января 2011 г. 21:39 пользователь Afanasov Dmitry
<ender@altlinux.org> написал:
> брр, сам сказал про прелесть и сам же повторил. смотрите за кавычками:
>
> rewrite "^(/media/.*/t/)(\d+)/(\d+\.\w{3})$" "$1$3?$2";
>
> специально проверил:
>
> *1 "^(/media/.*/t/)(\d+)/(\d+\.\w{3})$" matches "/media/video/air_subjects/2010-01/01/t/123123/82.flv"
> *1 rewritten data: "/media/video/air_subjects/2010-01/01/t//82.flv", args: "123123"

Вот это уже ближе к делу, только

2011/01/25 21:40:30 [notice] 3338#0: *10
"^(/media/.*/t/)(\d+)/(\d+\.\w{3})$" matches
"/media/video/air_subjects/2010-01/04/t/234234/12392.flv", client:
213.243.84.2, server: test.poisk.vid.ru, request: "GET
/media/video/air_subjects/2010-01/04/t/234234/12392.flv HTTP/1.1",
host: "test.poisk.vid.ru"
2011/01/25 21:40:30 [notice] 3338#0: *10 rewritten data:
"/media/video/air_subjects/2010-01/04/t/12392.flv", args: "234234",
client: 213.243.84.2, server: test.poisk.vid.ru, request: "GET
/media/video/air_subjects/2010-01/04/t/234234/12392.flv HTTP/1.1",
host: "test.poisk.vid.ru"


в результате мы получили
/media/video/air_subjects/2010-01/04/t/12392.flv", args: "234234", а
надо без /t/


-- 
С уважением,
Хачатурян Юрий (yukh@yukh.ru)


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 18:43                   ` Yuri Khachaturyan
@ 2011-01-25 18:47                     ` Afanasov Dmitry
  2011-01-25 18:48                       ` Yuri Khachaturyan
  2011-01-26  9:11                     ` Yuriy Kashirin
  1 sibling, 1 reply; 28+ messages in thread
From: Afanasov Dmitry @ 2011-01-25 18:47 UTC (permalink / raw)
  To: sysadmins

[-- Attachment #1: Type: text/plain, Size: 861 bytes --]

On Tue, Jan 25, 2011 at 09:43:30PM +0300, Yuri Khachaturyan wrote:
> 25 января 2011 г. 21:39 пользователь Afanasov Dmitry
> <ender@altlinux.org> написал:
> > брр, сам сказал про прелесть и сам же повторил. смотрите за кавычками:
> >
> > rewrite "^(/media/.*/t/)(\d+)/(\d+\.\w{3})$" "$1$3?$2";
> >
> > специально проверил:
> >
> > *1 "^(/media/.*/t/)(\d+)/(\d+\.\w{3})$" matches "/media/video/air_subjects/2010-01/01/t/123123/82.flv"
> > *1 rewritten data: "/media/video/air_subjects/2010-01/01/t//82.flv", args: "123123"
> 
> Вот это уже ближе к делу, только
> 
> в результате мы получили
> /media/video/air_subjects/2010-01/04/t/12392.flv", args: "234234", а
> надо без /t/
ну уж дальше, я полагаю, вы закончите. основная ошибка была - в кавычках.
сначала в их отсуствии, затем в неверном расположении.
-- 
 С уважением
 Афанасов Дмитрий

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 18:39                 ` Afanasov Dmitry
  2011-01-25 18:43                   ` Yuri Khachaturyan
@ 2011-01-25 18:47                   ` Yuri Khachaturyan
  1 sibling, 0 replies; 28+ messages in thread
From: Yuri Khachaturyan @ 2011-01-25 18:47 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

25 января 2011 г. 21:39 пользователь Afanasov Dmitry
<ender@altlinux.org> написал:
> специально проверил:
>
> *1 "^(/media/.*/t/)(\d+)/(\d+\.\w{3})$" matches "/media/video/air_subjects/2010-01/01/t/123123/82.flv"
> *1 rewritten data: "/media/video/air_subjects/2010-01/01/t//82.flv", args: "123123"

Похоже, проблема была действительно в кавычках.
Сработала вот такая конструкция:

rewrite "^/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$"
"/media/$1/$2/$4.$5?$3" last;

Дмитрий и остальные, кто принял участие, огромное Вам спасибо за помощь!

-- 
С уважением,
Хачатурян Юрий (yukh@yukh.ru)

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 18:47                     ` Afanasov Dmitry
@ 2011-01-25 18:48                       ` Yuri Khachaturyan
  0 siblings, 0 replies; 28+ messages in thread
From: Yuri Khachaturyan @ 2011-01-25 18:48 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

25 января 2011 г. 21:47 пользователь Afanasov Dmitry
<ender@altlinux.org> написал:
>> в результате мы получили
>> /media/video/air_subjects/2010-01/04/t/12392.flv", args: "234234", а
>> надо без /t/
> ну уж дальше, я полагаю, вы закончите. основная ошибка была - в кавычках.
> сначала в их отсуствии, затем в неверном расположении.

Да, уже все сделал. Спасибо огромное!

-- 
С уважением,
Хачатурян Юрий (yukh@yukh.ru)

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 16:43           ` Yuri Khachaturyan
  2011-01-25 18:17             ` Afanasov Dmitry
@ 2011-01-26  3:07             ` Денис Смирнов
  1 sibling, 0 replies; 28+ messages in thread
From: Денис Смирнов @ 2011-01-26  3:07 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

[-- Attachment #1: Type: text/plain, Size: 719 bytes --]

On Tue, Jan 25, 2011 at 07:43:21PM +0300, Yuri Khachaturyan wrote:

YK> Конфиг чего? Всего nginx или достаточно только секции server?
YK> 		rewrite "^/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$
YK> /media/$1/$2/$4.$5?$3" break;

Достаточно этой строчки, в которой бред :)

Потому что вместо регекса
^/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$ с заменой на
/media/$1/$2/$4.$5?$3 я вижу регексп
"^/media/(.*)/(.*)/t/([0-9]+)/(.*)\.([a-z0-9]{3})$
 /media/$1/$2/$4.$5?$3" с заменой на "break";

В кавычках должен быть регексп, а не regexp вместе с тем на что заменяем.

-- 
С уважением, Денис

http://mithraen.ru/
----------------------------------------------------------------------------

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 16:30           ` Yuri Khachaturyan
@ 2011-01-26  3:09             ` Денис Смирнов
  0 siblings, 0 replies; 28+ messages in thread
From: Денис Смирнов @ 2011-01-26  3:09 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

[-- Attachment #1: Type: text/plain, Size: 485 bytes --]

On Tue, Jan 25, 2011 at 07:30:08PM +0300, Yuri Khachaturyan wrote:

>> А вы что в кавычки заключили? Все правило? Или все таки только
>> регексп?
YK> Только регексп, есстественно.

Собственно именно поэтому надо для отладки публиковать куски конфигов --
ибо глаз замыливается, и вот такие тривиальные ошибки становятся самыми
сложными в отладке :)

-- 
С уважением, Денис

http://mithraen.ru/
----------------------------------------------------------------------------

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-25 18:43                   ` Yuri Khachaturyan
  2011-01-25 18:47                     ` Afanasov Dmitry
@ 2011-01-26  9:11                     ` Yuriy Kashirin
  2011-01-26  9:26                       ` Yuri Khachaturyan
  2011-01-26  9:45                       ` Michael Shigorin
  1 sibling, 2 replies; 28+ messages in thread
From: Yuriy Kashirin @ 2011-01-26  9:11 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

On Вторник 25 января 2011, Yuri Khachaturyan wrote:
> Вот это уже ближе к делу, только
> 
> 2011/01/25 21:40:30 [notice] 3338#0: *10
> "^(/media/.*/t/)(\d+)/(\d+\.\w{3})$" matches
> "/media/video/air_subjects/2010-01/04/t/234234/12392.flv", client:
> 213.243.84.2, server: test.poisk.vid.ru, request: "GET
> /media/video/air_subjects/2010-01/04/t/234234/12392.flv HTTP/1.1",
> host: "test.poisk.vid.ru"
> 2011/01/25 21:40:30 [notice] 3338#0: *10 rewritten data:
> "/media/video/air_subjects/2010-01/04/t/12392.flv", args: "234234",
> 
> в результате мы получили
> /media/video/air_subjects/2010-01/04/t/12392.flv", args: "234234",
> а надо без /t/

А вы чем ргулярные выражения отлаживаете?

$ pcretest 
PCRE version 7.9 2009-04-11

  re> "^(/media/.*/t/)(\d+)/(\d+\.\w{3})$"
data> /media/video/air_subjects/2010-01/04/t/234234/12392.flv
 0: /media/video/air_subjects/2010-01/04/t/234234/12392.flv
 1: /media/video/air_subjects/2010-01/04/t/
 2: 234234
 3: 12392.flv
data> 


Кстати, пользуясь случаем, спрошу. pcretest для таких случаев весьма 
полезная утилита. Зачем она в девел пакете лежит (libpcre-devel)?

-- 
 Best regards
 Yuriy Kashirin


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-26  9:11                     ` Yuriy Kashirin
@ 2011-01-26  9:26                       ` Yuri Khachaturyan
  2011-01-26 12:48                         ` Slava Dubrovskiy
  2011-01-26  9:45                       ` Michael Shigorin
  1 sibling, 1 reply; 28+ messages in thread
From: Yuri Khachaturyan @ 2011-01-26  9:26 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

26 января 2011 г. 12:11 пользователь Yuriy Kashirin <yura@emict.com> написал:


> А вы чем ргулярные выражения отлаживаете?
>
> $ pcretest
> PCRE version 7.9 2009-04-11

Я отлаживал обычным перлом... А за утилитку спасибо, будем знать ))

-- 
С уважением,
Хачатурян Юрий (yukh@yukh.ru)

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-26  9:11                     ` Yuriy Kashirin
  2011-01-26  9:26                       ` Yuri Khachaturyan
@ 2011-01-26  9:45                       ` Michael Shigorin
  2011-01-27  7:58                         ` Yuriy Kashirin
  1 sibling, 1 reply; 28+ messages in thread
From: Michael Shigorin @ 2011-01-26  9:45 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

On Wed, Jan 26, 2011 at 11:11:30AM +0200, Yuriy Kashirin wrote:
> Кстати, пользуясь случаем, спрошу. pcretest для таких случаев весьма 
> полезная утилита. Зачем она в девел пакете лежит (libpcre-devel)?

Повесишь или мне? :)

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-26  9:26                       ` Yuri Khachaturyan
@ 2011-01-26 12:48                         ` Slava Dubrovskiy
  2011-01-27  3:59                           ` Дмитрий Дегтярев
  0 siblings, 1 reply; 28+ messages in thread
From: Slava Dubrovskiy @ 2011-01-26 12:48 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

[-- Attachment #1: Type: text/plain, Size: 391 bytes --]

 26.01.2011 11:26, Yuri Khachaturyan пишет:
>> А вы чем ргулярные выражения отлаживаете?
>>
>> $ pcretest
>> PCRE version 7.9 2009-04-11
> Я отлаживал обычным перлом... А за утилитку спасибо, будем знать ))
Да, спасибо. А я мучился всегда...


-- 
WBR,
Dubrovskiy Vyacheslav


[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 5525 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-26 12:48                         ` Slava Dubrovskiy
@ 2011-01-27  3:59                           ` Дмитрий Дегтярев
  0 siblings, 0 replies; 28+ messages in thread
From: Дмитрий Дегтярев @ 2011-01-27  3:59 UTC (permalink / raw)
  To: slava, ALT Linux sysadmins' discussion

  26.01.2011 17:48, Slava Dubrovskiy пишет:
>   26.01.2011 11:26, Yuri Khachaturyan пишет:
>>> А вы чем ргулярные выражения отлаживаете?
>>>
>>> $ pcretest
>>> PCRE version 7.9 2009-04-11
>> Я отлаживал обычным перлом... А за утилитку спасибо, будем знать ))
> Да, спасибо. А я мучился всегда...
Если не секрет, в каком пакете это чудо утилита.. А то я то же мучаюсь..


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Sysadmins] Помогите с nginx rewrite
  2011-01-26  9:45                       ` Michael Shigorin
@ 2011-01-27  7:58                         ` Yuriy Kashirin
  0 siblings, 0 replies; 28+ messages in thread
From: Yuriy Kashirin @ 2011-01-27  7:58 UTC (permalink / raw)
  To: ALT Linux sysadmins' discussion

On Среда 26 января 2011, Michael Shigorin wrote:
> On Wed, Jan 26, 2011 at 11:11:30AM +0200, Yuriy Kashirin wrote:
> > Кстати, пользуясь случаем, спрошу. pcretest для таких случаев
> > весьма полезная утилита. Зачем она в девел пакете лежит
> > (libpcre-devel)?
> 
> Повесишь или мне? :)

https://bugzilla.altlinux.org/show_bug.cgi?id=24980

-- 
 Best regards
 Yuriy Kashirin


^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2011-01-27  7:58 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-25 13:20 [Sysadmins] Помогите с nginx rewrite Yuri Khachaturyan
2011-01-25 13:27 ` Денис Смирнов
2011-01-25 13:31   ` Yuri Khachaturyan
2011-01-25 13:32 ` Slava Dubrovskiy
2011-01-25 13:39   ` Yuri Khachaturyan
2011-01-25 15:52     ` Денис Смирнов
2011-01-25 15:56       ` Yuri Khachaturyan
2011-01-25 16:13         ` Yuriy Kashirin
2011-01-25 16:30           ` Yuri Khachaturyan
2011-01-26  3:09             ` Денис Смирнов
2011-01-25 16:38         ` Денис Смирнов
2011-01-25 16:42           ` Yuri Khachaturyan
2011-01-25 16:40         ` Денис Смирнов
2011-01-25 16:43           ` Yuri Khachaturyan
2011-01-25 18:17             ` Afanasov Dmitry
2011-01-25 18:21               ` Yuri Khachaturyan
2011-01-25 18:39                 ` Afanasov Dmitry
2011-01-25 18:43                   ` Yuri Khachaturyan
2011-01-25 18:47                     ` Afanasov Dmitry
2011-01-25 18:48                       ` Yuri Khachaturyan
2011-01-26  9:11                     ` Yuriy Kashirin
2011-01-26  9:26                       ` Yuri Khachaturyan
2011-01-26 12:48                         ` Slava Dubrovskiy
2011-01-27  3:59                           ` Дмитрий Дегтярев
2011-01-26  9:45                       ` Michael Shigorin
2011-01-27  7:58                         ` Yuriy Kashirin
2011-01-25 18:47                   ` Yuri Khachaturyan
2011-01-26  3:07             ` Денис Смирнов

ALT Linux sysadmins discussion

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \
		sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com
	public-inbox-index sysadmins

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sysadmins


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git