Здравствуйте!
Имею сайт с ЧПУ, который отображается по следующим правилам:
- Если это картинка или архив, файл выдается напрямую
- В остальных случаях УРЛ вида [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]" волшебным образом переходит).
В общем, вопрос - как в моем случае написать конфигурацию, чтобы работал сторонний форум, и в нем не срабатывали изменения урла, описанные для остальных страниц сайта.