我试图让这是怎么回事与Symfony2的我nginx的配置文件的一个清醒的认识,那就是:
server {
listen 80;
autoindex on;
server_name example.com;
root /var/www/example.com/web;
rewrite ^/app\.php/?(.*)$ /$1 permanent;
location / {
index app.php;
try_files $uri $uri/ @symfony;
}
location @symfony {
rewrite ^(.*)$ /app.php/$1 last;
}
location ~ ^/app\.php(/|$) {
include fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
总之,我试图剥离app.php在每一个可能的URI,用户可以设置如example.com/app.php/demo或只是example.com/app.php。
此配置实际工作像那些上面的URI,但它会导致重定向循环中尝试访问“根” URI example.com情况。
如果我从try_files删除$ URI /只留下$ uri和后备@symfony那里,一切工作正常,除非他们打算通过SF处理,我不能访问任何目录。
我的想法,做了很多研究如何nginx的重写和实际工作,但现在这对我来说是死路一条。 如果你能找到一个解决办法留在$ URI /在try_files,并得到了循环在前面,请让我知道。