Not sure what the problem is.
Here's a minimal Nginx config file ('server {}' part)i used for Roundcube, it works for me, but not sure whether it works for you or not.
listen 80;
server_name _;
# Use the same document root as Apache.
root /var/www;
index index.php index.html index.htm;
location / {
root /var/www/html;
}
# Roundcube webmail
location ~ /mail(.*)\.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /var/www/roundcubemail$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME /var/www/roundcubemail$1.php;
include fastcgi_params;
}
location ~ /mail(.*) {
alias /var/www/roundcubemail$1;
}
location ~ ^/mail/(bin|SQL|README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ { deny all; }
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
location ~ /\. { deny all; access_log off; log_not_found off; }
NOTE: It uses Apache style alias instead of using a new subdomain name to host webmail, hope it's ok for you.