[Sysadmins] Помогите с nginx rewrite

Yuri Khachaturyan yukh на yukh.ru
Вт Янв 25 18:21:15 UTC 2011


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)


Подробная информация о списке рассылки Sysadmins