Need help - rewrite from apache to nginx

Veaceslav Grecea veaceslav.grecea на gmail.com
Вт Июл 20 20:14:56 MSD 2010


2010/7/19 Igor Sysoev <igor at sysoev.ru>

> On Sun, Jul 18, 2010 at 08:22:35PM +0300, Veaceslav Grecea wrote:
>
> > Здравствуйте.
> >
> > Есть вот такие реврайт правила:
> >
> > RewriteRule detail-property-results-([0-9]+).php$
> > /results_detail.php?pageindex=$1&lang=en
> > [NC,L]
> > RewriteRule detail-property-results.php$
> > /results_detail.php
> > [NC,L]
> > RewriteRule property/([0-9]+)/(.*).php$
> > property-detail-2?propertyid=$1&lang=$2
> > [R,L]
> > RewriteRule property-results-([0-9]+).php$
> > /results.php?pageindex=$1&lang=en
> > [NC,L]
> > RewriteRule property-results.php$
> > /results.php?lang=en [NC,L]
> >
> > Я уже день мучаюсь и никак не могу перенести их под локейшены nginx-а.
> > Хотя бы пример по первому правилу.
>
> Я бы сделал так (писать больше, зато сопровождать легче):
>
> location /detail-property-results {
>
>    location = /detail-property-results.php {
>        fastcgi_pass   ...
>        fastcgi_param  SCRIPT_FILENAME  /path/to/results_detail.php;
>        fastcgi_param  QUERY_STIRNG     "";
>        include        fastcgi_params0;
>    }
>
>    location ~ ^/detail-property-results-([0-9]+)\.php$ {
>        fastcgi_pass   ...
>        fastcgi_param  SCRIPT_FILENAME  /path/to/results_detail.php;
>        fastcgi_param  QUERY_STIRNG     pageindex=$1&lang=en;
>        include        fastcgi_params0;
>    }
>
>    return 404;
> }
>
> location /property-results {
>
>    location = /property-results.php {
>        fastcgi_pass   ...
>        fastcgi_param  SCRIPT_FILENAME  /path/to/results.php;
>        fastcgi_param  QUERY_STIRNG     lang=en;
>        include        fastcgi_params0;
>    }
>
>    location ~ ^/property-results-([0-9]+)\.php$ {
>        fastcgi_pass   ...
>        fastcgi_param  SCRIPT_FILENAME  /path/to/results.php;
>        fastcgi_param  QUERY_STIRNG     pageindex=$1&lang=en;
>        include        fastcgi_params0;
>    }
>
>    return 404;
> }
>
> location /property/ {
>
>    location ~ ^/property/([0-9]+)/(.*)\.php$ {
>        return  http://$host/property-detail-2?propertyid=$1&lang=$2;
>    }
>
>    return 404;
> }
>
hg_04, Игорь, спасибо за помощь.
Действительно, решение Игоря очень красиво и элегантно. Мне все равно
сколько писать, главное чтобы было правильно и понятно сразу.
Но некоторые вещи не работают: этот location ~
^/property-results-([0-9]+)\.php$ по гет-у не передаёт значения и пагинатор
не работает в результате. Там ури примерно вот такое:
/category/properties/detail-property-results-2.php
Видимо  не нужен ^. Или я не прав ?

Я попытаюсь пообщаться с программером насчет этого.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100720/f55c9027/attachment-0001.html>


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