Проблема с реврайтами в joomla и с редиректами в 4images.

F0iL nginx-forum на nginx.us
Ср Ноя 17 09:59:46 MSK 2010


1) Всем доброго времени суток.
Сразу к делу.
Есть сайт с Joomla.
На сайте используются как "типа" ЧПУ:
http://xxxx.ru/index.php/20101111656/cat1/file.html
так и прямые линки:
http://xxxx.ru/index.php?option=com_kinoarhiv&Itemid=34

Нужно перенести его с Apache на Nginx+PHP-FPM.

Конфиг примерно вот такой:

[code]

        root /srv/www/xxxx/htdocs/;



        location / {
          index index.php index.html index.htm;
        }

        location ~* (/|\.html?|\.feed|\.pdf|\.raw|/[^.]*)$ {
          try_files $uri $uri/ @joomla;
        }


        # php-fastcgi
       location ~ \.php$ {
                try_files  $uri @joomla;
                proxy_buffering off;
                fastcgi_pass   unix:/var/run/php-fpm/default.socket;
                fastcgi_index index.php;

                fastcgi_param  SCRIPT_FILENAME 
/srv/www/xxxx/htdocs/index.php;
                fastcgi_param  QUERY_STRING     $query_string;
                fastcgi_temp_path  /spool/nginx/fastcgi_temp 1 2;
                include fastcgi_params;
        }



        location @joomla {
                fastcgi_pass   unix:/var/run/php-fpm/default.socket;



                fastcgi_pass   unix:/var/run/php-fpm/default.socket;
                fastcgi_param  SCRIPT_FILENAME 
/srv/www/xxxx/htdocs/index.php;
                fastcgi_param  QUERY_STRING         $query_string;

                include fastcgi_params;

        }



    location ~* \.(jpg|gif|png|css|js|ico)$ {
        access_log off;
        expires 30d;

    }
    location /403.html
        {
        root /srv/ftp/www/;
        }
}

[/code]

Проблема следующая:
/ открывается отлично.
"ЧПУ"-адреса открываются тоже отлично.
а вот прямые адреса - Joomla выплевывает
ошибку, мол, нет доступа, или
неправильный модуль.
В логах ничего подозрительного нет.
Такое впечатление, что реврайт
неправильно срабатывает именно тогда,
когда идет запрос на реально
существующий URL (т.е. php-файл), но в чем
именно здесь может быть ошибка - в упор
не пойму.

Кто-нить с таким сталкивался? В какую
сторону копать, что еще проверить?

2) Вторая проблема - есть сайт с галереей
4images.
Задача та же.
Никаких ЧПУ нет, поэтому конфиг до
банального прост:
[code]
    location / {
        root /srv/www/aaaa/htdocs/;
        index index.php;
    }

        # php-fastcgi
       location ~ \.php$ {
        proxy_buffering off;
        fastcgi_pass   unix:/var/run/php-fpm/default.socket;
        fastcgi_intercept_errors on;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME 
/srv/www/aaaa/htdocs/$fastcgi_script_name;
        fastcgi_param  QUERY_STRING     $query_string;
        fastcgi_temp_path  /spool/nginx/fastcgi_temp 1 2;
        include fastcgi_params;
        }
   location ~* \.(jpg|gif|png|css|js)$ {
        root /srv/www/aaaa/htdocs/;
        access_log off;
        expires 30d;
    }
[/code]
Все бы замечательно, НО.
В скрипте 4images при некоторых действиях
делается несколько HTTP 302 redirect с одной
страницы на другую.
При работе на Apache все работает
замечательно, при работе с Nginx -
редирект "зацикливается", и после
долгого ожидания браузер пишет, что
получает бесконечное перенаправление
со страницы на ее саму же.
Причем детальный анализ HTTP-ответов
сервера и PHP-кода движка так и не помог
разобраться, из-за чего такая разница в
поведении при работе скриптов на apache и
на nginx+php-fpm.
Вопрос тот же:
Кто-нить с таким сталкивался? В какую
сторону копать, что еще проверить?

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




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