ПРОЕКТЫ 


  АРХИВ 


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: знак вопроса не об рабатывается в regexp



On Wed, Oct 14, 2009 at 04:51:05PM +0300, Sergej Kandyla wrote:

> На сервере есть ссылки на некоторую динамику, которые нужно профильтровать.
> ссылки примерно такого харакетера
> 
> http://mydomain.com/dsfdasf/sfasdf/file.php?EXAMPLE_3=2
> http://mydomain.com/dsfdasf/sfasdf/file.php&EXAMPLE_=1
> 
> сделал отдельный локейшн, удовлетворяющий данному запросу.
> 
>      server_name  mydomain.com
>       location ~ ^.*(EXAMPLE_).*$ {
>                 rewrite ^ http://mydomain.com redirect;
>       }
> 
> если в запросе содержится знак вопроса '?'
> то данный регексп не обрабатывается.
> 
> пробовал также экранировать знак вопроса '\?' - не помогло.
> пробовал как через location, так и непосредственно в реврайте указать 
> такой регексп.
> 
> В чем может быть ошибка?

       if ($args ~ EXAMPLE_) {
            rewrite ^ http://mydomain.com/?  redirect;
       }

location учитывает только URI без query string по одной простой причине:
в query string можно написать чего угодно и в любом порядке, например,

     /index.html?one=1&two=2
     /index.html?two=2&one=1
     /index.html?one=1&two=2&и-ещё-чего-то-до-кучи

И как это тестировать ?


-- 
Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.