ПРОЕКТЫ 


  АРХИВ 


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: rewrite rules. help pls.



Hello!

On Mon, Jun 10, 2013 at 12:23:13PM +0400, Andrey Ermishin wrote:

> Уважаемые all.
> 
> Пытаюсь мигрировать в apache на Nginx.
> 
> nginx установлен вместе с php5-fpm.
> 
> Возникла проблема с переносом правил для rewrite.
> 
> На апаче правила выглядят так:
> 
> RewriteEngine On
> RewriteCond %{REQUEST_URI} /playlist\.xspf
> RewriteRule (.*) channels.php [L,QSA]
> 
> на nginx пробую такую конструкцию:
> 
> server {
>     ...
>     location /eltex {
>         rewrite /playlist\.xspf /eltex/channels.php break;
>     }
>     ...
>     location ~ \.(php)$ {
>         ...
>         fastcgi_pass   php_backends;
>         ...
>     }
>     ...
> }
> 
> 
> Собственно  говоря в этом случае channels.php не выполняется, а просто
> отдается содержимое скрипта.

Во-первых, rewrite у вас не имеет шанса сработать, т.к. запрос 
"/playlist.xspf" не имеет шансов попасть в location /eltex.

Во-вторых, даже если бы он сработал - запрос после "rewrite ...  
break" обрабатывается в том же location, где был сделан rewrite.  
А там у вас, судя по всему, никакого fastcgi_pass нет.  Если нужно 
выбрать другой location - правильнее всего написать "rewrite .. 
last".

Подробная документация есть тут:

http://nginx.org/r/location/ru
http://nginx.org/r/rewrite/ru

> Если же в backend добавляю     location ~ \.(php|xspf)$
> то вообще error ~404

Что опять же ожидаемо, ибо файла /playlist.xspf у вас, судя по 
всему, нет.

> Что делать? как правильно составить конфигурацию для nginx?

Совсем правильно как-то так:

    location = /playlist.xspf {
        fastcgi_pass php_backends;
        fastcgi_param SCRIPT_FILENAME $document_root/eltex/channels.php;
        include fastcgi_params;
    }

-- 
Maxim Dounin
http://nginx.org/en/donation.html

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.