ciao, l'espressione ([^/]+) "significa" tutti i caratteri eccetto /, trova quindi corrispondenza anche in ristoranti-e-locali-.
Inverti l'ordine delle regole o usa espressioni più restrittive.
Hai una RewriteCond? Il %{QUERY_STRING} lo puoi omettere utilizzando il flag QSA
codice:
RewriteRule ^([0-9]+)/([^/]+)/([^/]+)/ristoranti-e-locali-([^/]+)-([0-9]+).php$ ristoranti-elenco.php?idnazione=$1&nazione=$2&citta=$3&cittadue=$4&idcitta=$5 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)-([^/]+)-([0-9]+).php$ scheda_dettagli.php?reg=$1&prov=$2&citta=$3&tipologia=$4&nome=$5&idelemento=$6 [QSA,L]