Ok, então decidi voltar ao básico aqui e fiz o meu código para:
location /xxx {
autoindex on;
alias /xxx/web/blog/xxx;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
E eu não tenho idéia do porquê, mas funciona, eu estou razoavelmente seguro que eu já tentei algo muito próximo disso.
Eu pensei que era porque eu adicionei: try_files $uri $uri/ /index.php?$args;
, mas eu removi isso e ainda funcionou.
Se alguém puder explicar como aliases e PHP dentro deles funcionam um pouco melhor e por que isso não funcionaria para mim, então eu aceitaria essa resposta, já que é efetivamente a questão.