ПРОЕКТЫ 


  АРХИВ 


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: Проблема с RewriteCond можно ли использовать регуляр ки в условиях?


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Проблема с RewriteCond можно ли использовать регуляр ки в условиях?
  • From: Sergey Shepelev <temotor@xxxxxxxxx>
  • Date: Thu, 28 Oct 2010 07:29:47 +0800
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=wg8H0NRsChwllul7EvPw/YFEfvVTsiJIk+DuTNPDOPw=; b=uy5KIhfyQR4wddbnUJ3/Exd7d3b64d4hJ2ezCph+l6nNtvJBf5pvcHq3zuVBeD4RAt Nx21UkIXLk9GPyT4f3wqUhUOapp1tqxm1f4uJ5AR8SuhYSYnEq+djNHcFJVd2UgjkZor JfAk6a/WjCw9aXyMcqXG8Q3BVG1f+dtnOJbVU=
  • 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=VoEq3ekFQoovXNQkBKtXNwWV9kATcRtG5qhIyI6hkZhFU4b5Zupkb0W55r+dvNKiFy ysVgCHDikoTv+Thx4n+ORNqhcqegGMvGbpzXuIHbb3CuZd0RXDspENPISJGn+jEWxSev +MFUi6oZCbZdFz5Z5jVJxiUNcb1qtUHLaMP2Y=
  • In-reply-to: <c7cf4ca520cd4beb8d5ee799490073b6.NginxMailingListRussian@xxxxxxxxxxxxxxx>
  • References: <AANLkTim08DOQbtWUZ0F1xBHqjJNmv6ZKx=1uga1yfMb3@xxxxxxxxxxxxxx> <c7cf4ca520cd4beb8d5ee799490073b6.NginxMailingListRussian@xxxxxxxxxxxxxxx>

2010/10/28 Halfi <nginx-forum@xxxxxxxx>:
> Sergey Shepelev Пишет:
> -------------------------------------------------------
>> http://sysoev.ru/nginx/docs/http/ngx_http_rewrite_module.html#if
>>
>> > сравнение переменной со строкой с
> помощью операторов "=" и "!=";
>>
>> И не должна тут работать регулярка.
>>
>> Вообще оператор равенства
>> с регекспами хоть где-то
>> используется?
>
> Сами бы повнимательнее мануал
> прочитали, следующий пункт, идущий за
> тем, который вы мне процитировали
> гласит о следующем:
> проверка переменной с помощью
> регулярного выражения без учёта
> регистра символов ? "~*" и с учётом ? "~".

Именно поэтому я и дал эту ссылку. :) Хорошо, что вы нашли правильный
оператор. Плохо, что с таким тоном.

> В регулярных выражениях можно
> использовать выделения, которые затем
> доступны в виде переменных $1 ? $9. Также
> можно использовать отрицательные
> операторы "!~" и "!~*". Если в регулярном
> выражении встречаются символы "}" или ";",
> то всё выражение нужно заключить в
> одинарные или двойные кавычки.
>
>
> У меня получился такой вариант, но
> видимо я не допонимаю в условии:
>
> [code]
> if ($http_host ~ ^/(([-_a-zA-Z0-9/]+)([-_a-zA-Z0-9]+))$) {
>    rewrite  ^(.*)$  $1/ permanent;
> }
> [/code]
> Не работает, перепробовал много
> вариантов, в кавычках, без них.. В htaccess
> все работает ровно..
>

Ваш регексп не может быть с пользой применён к $http_host. Представьте
какие варианты строк могут быть в этой переменной и сформулируйте
(писать в рассылку не обязательно) что нужно из этих вариантов
вычленить.
pcretest или миллион других утилит для отладки регекспов в помощь.
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.