rewrite rule

RaPaMaN rapaman at virthost.net
Sun Dec 26 20:20:07 MSK 2004


On Sunday 26 December 2004 19:13, Igor Sysoev wrote:

> > > > > Почему не работает "(.+\.(jpg|png|gif))", нужно смотреть, возможно,
> > > > > это проблема PCRE, а может, и nginx'а.
> > > >
> > > > Работать не будет, потому как в $2 всегда будет попадать расширение
> > > > картинки. Тут только выход - использовать regexp без помещения
> > > > значения в контейнер, т.е. (?:) и т.п.
> > >
> > > Почему не будет ? Работает.
> >
> > работает, только расширение еще добавляется двойное,
> > получается: ..../bober.jpgjpg
>
> Откуда оно добавляется ? $1 ведь не захватывает расширения. Оно попадает
> только в $2.

Конструкция вида: (.+\.(jpg|png|gif))

даст в $1 - весь кусок, а в $2 - расширение совпавшее.

(.+\.)(jpg|png|gif)   - $1$2 будет работать.

> > А если этот URL alias_name/xxx/yyy/image.jpg переписывается
> > до /xxx/yyy/umage.jpg, а xxx и yyy - куча комбинаций может быть ?
>
> Не понял вопрос. alias работает, как в Апаче, то есть, часть URI,
> соответсвующая location, заменяется на alias и получается путь к файлу.
>

я отправил еще пример, для объяснения сути.

> > Т.е. надо имеено поймать в location то, что прошло rewrite.
>
> rewrite работает до фазы определения location. То есть, сначала URI
> переписывается, а потом определяется, какой конфигурации он соответсвует.

понял, спасибо.

С Уважением,
Дмитрий.
-- 
I ain't got time for bitches
Gotta Keep my mind on my motherfuckin riches
even when I die
they won't worry me
Mama don't cry
bury me a G





More information about the nginx-ru mailing list