Запишу, чтобы самому же не забыть в следующий раз. Почти все конфиги для поддержки «чистых» URL в nginx для адекватной работы Drupal — неправильные. Точнее, в некоторых старых этот момент учтен (которые через «if (!-e $request_filename)» и т.п. сделаны), а в новых — красивых и цивильных — нет. В частности — в том, который в FAQ самого nginx дается. Корень зла в том, что Друпалу в запросе передается URI целиком вместе с первым слэшем, а это — неправильно. Т.е. надо передавать не q=/node/1, а q=node/1. Самое печальное, что в .htaccess по умолчанию, который идет в комплекте, правила тоже неправильные: «RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]» вместо «RewriteRule ^/(.*)$ index.php?q=$1 [L,QSA]». При этом все работает нормально, а косяки вылезают, например, при создании мультиязычного сайта — на всех языках, кроме default ничего не открывается — page not found.
Соответственно, достаточно вставить маленький rewrite в location @drupal в описании сервера для nginx’а:
rewrite ^/(.*)$ $1 break; fastcgi_param QUERY_STRING q=$uri&$args;
И все тут же становится хорошо…