Здравствуйте!
Имею сайт с ЧПУ, который отображается по следующим правилам:
- Если это картинка, архив, CSS - файл выдается напрямую
- В остальных случаях УРЛ вида http://site.ru/site/page/index преобразуется в http://site.ru/index.php?site/page/index.
Эти правила описаны в конфигурации следующим образом:
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;
}
Мне нужно теперь, чтобы на сайте отображался форум punbb. Я положил его в директорию /punbb относительно корня сайта (т.е. абсолютный путь - /var/www/webhamster/punbb). И теперь не могу понять, как его отображать таким образом, чтоб на него не действовали правила преобразования ЧПУ.
Я пробовал дописать подобное (регвыр пока просто «punbb» чтоб срабатывало наверняка):
location ~* punbb
{
}
но толи реврайт в «location /» всеравно срабатывает, ибо «location /» имеет более высокий приоритет (так ли это?), либо еще что-нибудь, может быть последовательность описания локаций имеет влияние, хотя я перемещал по-всякому, в общем, эффекта нет. Я вижу либо попытку вызвать скрипт по ЧПУ, либо «403 Forbidden». Думал, дело в правах, но права выставлены по той же схеме, что и у основного сайта.
Потом обнаружил, что при открытии site.ru/punbb/index.php, файл index.php отдается напрямую (то есть без выполнения). То есть, на «location ~ \.php$» с FastCGI бакэндом обработка не переходит (а из «location /» волшебным образом переходит).
В общем, вопрос - как в моем случае написать конфигурацию, чтобы работал сторонний форум, и в нем не срабатывали изменения урла, описанные для остальных страниц сайта.