In a general sence: the combination of the following two rules is enough for WordPress to work. They catch all requests and (if the requested resource does not exist) divert them to index.php
...
location / {
# This is cool because no php is touched for static content.
# include the "?$args" part so non-default permalinks doesn't break when using query string
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
include fastcgi.conf;
fastcgi_intercept_errors on;
fastcgi_pass php;
}
...
This is also enough for the xml sitemap plugin to work.
However, if there is another rules that target files with an .xml extension for example, then that rule applies instead of the general rule and you will probably get a 404 response because the .xml sitemap location is not a real file…
You’ll have to dig through the Nginx config, looking for anything where “xml” or “sitemap_index” comes up… Let me know and I may be able to suggest an alternative rule.