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
|