Сторонний PHP форум на сайте с ЧПУ

xintrea nginx-forum на nginx.us
Пн Сен 6 10:45:11 MSD 2010


Здравствуйте!


Имею сайт с ЧПУ, который отображается
по следующим правилам:

- Если это картинка или архив, файл
выдается напрямую
- В остальных случаях УРЛ вида
[color=#800000]http://site.ru/site/page/index[/color]
преобразуется в
[color=#800000]http://site.ru/index.php?site/page/index[/color].

Эти правила описаны в конфигурации
следующим образом:

[code]
        location / {
                root   /var/www/webhamster;
                index  index.html index.htm;

                if (!-f $request_filename) {
                        rewrite ^(.*) /index.php?$1 last;
                }

        }

        location ~*
^.+\.(jpg|jpeg|gif|png|ico|css|txt|js|zip|rar|tar.gz)$
        {
        }

        location ~ \.php$ {
                fastcgi_pass   127.0.0.1:8888;
                fastcgi_index  index.php;
                include fastcgi_params;
                fastcgi_param  SCRIPT_FILENAME
/var/www/webhamster$fastcgi_script_name;
        }
[/code]

Мне нужно теперь, чтобы на сайте
отображался форум punbb. Я положил его в
директорию /punbb относительно корня
сайта (т.е. абсолютный путь -
/var/www/webhamster/punbb). И теперь не могу понять,
как его отображать таким образом, чтоб
на него не действовали правила
преобразования ЧПУ.

Я пробовал дописать подобное (регвыр
пока просто "punbb" чтоб срабатывало
наверняка):

[code]
        location ~* punbb
        {
        }
[/code]

но толи реврайт в "location /" всеравно
срабатывает, ибо "location /" имеет более
высокий приоритет (так ли это?), либо еще
что-нибудь, может быть
последовательность описания локаций
имеет влияние, хотя я перемещал
по-всякому, в общем, эффекта нет. Я вижу
либо попытку вызвать скрипт по ЧПУ,
либо "403 Forbidden". Думал, дело в правах, но
права выставлены по той же схеме, что и
у основного сайта.

Потом обнаружил, что при открытии
[color=#800000]site.ru/punbb/index.php[/color], файл index.php
отдается напрямую (то есть без
выполнения). То есть, на "[color=#800000]location ~
\.php$[/color]" с FastCGI бакэндом обработка не
переходит (а из "[color=#800000]location /[/color]"
волшебным образом переходит). 

В общем, вопрос - как в моем случае
написать конфигурацию, чтобы работал
сторонний форум, и в нем не срабатывали
изменения урла, описанные для 
остальных страниц сайта.

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




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