Tente isto:
location / {
root /var/www/vhosts/sitename/httpdocs;
index index.php index.html index.htm;
if (!-e $request_filename){
rewrite ^/(.*)$ /index.php;
}
}
break
não é apenas redundante, mas também errado, porque se fizer o nginx encerrar o processo de reescrita e colocar a solicitação dentro da localização atual (que não está ciente do manuseio do script php).
try_files
é uma abordagem comum quando um engenheiro não sabe onde exatamente seus arquivos estão localizados, ele é traduzido para nginx em 'veja aqui, olhe lá, procure em todos os lugares e nos ajude deus a encontrar esses arquivos estamos procurando por '. Eu pessoalmente uso try_files
somente em situações em que um grande conjunto de arquivos é realocado entre duas partes da árvore e arquivos realmente podem estar em vários locais, e isso não é conhecido decentemente.
Note que você também precisa de um local de regexp para arquivos * .php, passando-os para o backend fastcgi ou qualquer outro. Isso está além do escopo da sua pergunta e desta resposta; Espero que você saiba o que quero dizer.