Re: Проблема с RewriteCond можно ли использовать регулярки в условиях?

Halfi nginx-forum на nginx.us
Чт Окт 28 03:04:31 MSD 2010


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
все работает ровно..

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,145111,145121#msg-145121




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