ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: непонятка с IP адресами


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: непонятка с IP адресами
  • From: Sergey Shepelev <temotor@xxxxxxxxx>
  • Date: Tue, 14 Jun 2011 14:51:57 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type:content-transfer-encoding; bh=QRjXqnfkVcPYScw16ktA8QxDm5RHbvWDP6CgO2fDnF4=; b=mPU+lerOH6C4wl4+mhdI2PgnBrATL7xBGLX1seagSgeR9X+sZWCTlyxQqCSItz/4aN 8LGTNemLgKw2fDf9UhdPiClWL90xmxD5gWnbCV+z0JvXdqV2SghVrID48DhQMN4rl+88 f4O1MLZoOdvK9EWc6VEJlVou8eKn8k+jm9tHA=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=BvM4g3ckcNr/KJK17q4Rv44+b5707I82eCpqv5u75sY5AUcN9ImncA3uN3I0Svu3ov GAKyAeV9P+ieXpkkLpvQoYMSBLBBlQNzFYdtEhB/kSXzDC0nml12n5A1KN4zos2yhhBP IIaroDvogOHLRyp5oKLVYWcGPw5RbKKmldr7o=
  • In-reply-to: <3f5141396a0b06bba274115e99058d47.NginxMailingListRussian@xxxxxxxxxxxxxxx>
  • References: <BANLkTinZqe+-W2Pv+xKaf=aF2iNzYgOuxw@xxxxxxxxxxxxxx> <3f5141396a0b06bba274115e99058d47.NginxMailingListRussian@xxxxxxxxxxxxxxx>

>> Инструменты для проверки
>> регекспов:
>> http://gskinner.com/RegExr/
>> http://myregexp.com/
>> pcretest
>> perl -pe
>
> Спасибо. Вроде понял.
> Подскажите еще я правильно понимаю что
> если есть локейшен типа:
>  location ^~ /images/ {
>      ....
>  }
>
> то в него попадут все, что есть в
> каталоге images/*.*. А если у этого images усть
> подкоталоги, к примеру images/img1/*.*. Эти
> картинки из img1 попадут в этот локейшен
> или нет?
>

Локейшны работают с урлами, а не с файлами и каталогами. Урл это
строка. Никакие символы в строке не имеют специального значения. В
путях файлов слеши (/) разделяют "подкаталоги". А в строке - слеш
ничего не значит, это такой же символ как m, g или 1.

Из документации:
"Если нужно запретить проверку регулярных выражений после проверки
обычных строк, то это можно сделать с помощью префикса "^~". Если у
максимально совпавшего location'а есть этот префикс, то регулярные
выражения не проверяются."

Таким образом, среди всех не-регексповых локейшнов ищется максимальное
совпадение с урлом. Для конфига
location / { ... }
location ~^ /images/ { ... }
урлы /images/foo.bar, /images/foo/bar/,
/images/foo/foo/foo/foo/foo/foo/foo/foo/foo совпадают с обоими
локейшнами. Но с первым локейшном совпадает только 1 символ из начала
урла (/), а со вторым локейшном совпадает 8 символов из начала
(/images/), поэтому запросы будут обработаны в нём. Что в урле идёт
после максимального совпадения - совершенно не важно.

P.S.: маска *.* имеет смысл только в MSDOS (который умер). В остальных
популярных операционных системах, включая Windows 4+, расширений
отдельно от имён файлов больше нет.
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.