Здравствуйте!
Уже который день бьюсь над решением проблемы. Ставлю Symfony2 в сабдиректорию (это, думаю, не важно, т.к. при тестировании в корневой директории по домену результат тот же). Конфиг из сервер блока следующий:
listen 80;
autoindex on;
server_name example.com;
root /var/www/example.com;
rewrite ^/project/app_dev\.php/?(.*)$ /project/$1 permanent;
location /project {
alias /var/www/example.com/project/web;
index app_dev.php;
try_files $uri $uri/ @symfony;
}
location @symfony {
rewrite ^/project/(.*)$ /project/app_dev.php/$1 last;
}
location ~ ^/project/(.+)\.php(/|$) {
alias /var/www/example.com/project/web/;
include fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^/project/(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME /project/$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
При доступе по URL типа:
http://example.com/project/app_dev.php/demo
или
http://example.com/project/demo
Все работает ок. Запросы передаются к симфони и нет никаких левых редиректов.
А вот при доступе к корню приложения, т.е. к:
http://example.com/project (со слешем или без - без разницы)
Выдается редирект луп. И не понимаю, откуда он. Интересно, что в этом случае, если я уберу $uri/ (со слешем) из try_files в блоке location /project {} - то все вдруг начинает работать. Однако я не понимаю, как эти вещи взаимосвязаны. Плюс к этому, мне нужно, чтобы $uri/ ПРИСУТСТВОВАЛ, т.к. я хочу иметь прямой доступ к реальным папкам на сервере, минуя симфони.
Пожалуйста, помогите разобраться.