Welcome! Log In Create A New Profile

Advanced

Re: rewrite rules. help pls.

Andrey Ermishin
June 11, 2013 02:52AM
Здравствуйте, Maxim.

Вы писали 10 июня 2013 г., 14:13:55:

MD> Hello!

MD> 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 не выполняется, а просто
>> отдается содержимое скрипта.

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

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

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

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

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

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

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

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

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



Спасибо разобрался.
Теперь новая засада (что бы не плодить топики).

В апаче была такая конфигурация сервера:

Alias /dns /srv/http/dns/html

<Directory /srv/http/dns/html>
Options All
DirectoryIndex index.php

</Directory>

Переношу ее в nginx

location ^~ /dns/ {
root /srv/http/dns/html/;
access_log /srv/http/dns/logs/access.log;
error_log /srv/http/dns/logs/error.log;
}

в итоге при обращении http://url/dns/
получаю ошибку в еррор лог:
2013/06/11 10:46:23 [error] 11962#0: *5 open() "/srv/http/dns/html/dns/index.php" failed (2: No such file or directory)

что не так?





--
Ермишин Андрей
Руководитель департамента
управления сети
Оператор связи
ООО "Шупашкартранс-К"
телефон: (8352) 272008

eas@etherway.ru

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

rewrite rules. help pls.

Andrey Ermishin June 10, 2013 04:24AM

Re: rewrite rules. help pls.

Maxim Dounin June 10, 2013 06:14AM

Re: rewrite rules. help pls.

Andrey Ermishin June 11, 2013 02:52AM

Re: rewrite rules. help pls.

Роман Москвитин June 11, 2013 03:28AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 87
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready