Сделать location для nginx
location ~ /(msk|spb|sam|etc)/?$ {
    ## вариант 1. не уверен что это хорошая идея
    #error_page 301 =200 /index.php?city=$1&$query_string;
    #return 301;

    ## вариант 2
    #try_files $uri $uri/ /index.php?city=$1&$query_string;

    ## вариант 3
    fastcgi_pass php_fpm;
    include fastcgi_params;
    fastcgi_param QUERY_STRING city=$1&$query_string;
    fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}

proxy_pass вместо (вместе — нужное подчеркнуть) rewrite не подойдёт? Сходу не соображу, как использовать, но подумать можно, как мне кажется