Второй вариант будет лучше, однако, он будет зацикливаться, так как перенаправление на /index.html?city=$1
также будет обрабатываться, и, когда оно соответствует RewriteRule, оно также будет перенаправлено. Что-то вроде:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.html?city=$1 [NC,L]
будет работать лучше, поскольку гарантирует, что перенаправляет только запросы, которые не относятся к существующим файлам или каталогам. Я попробовал пример "münster" с вышеупомянутым, и он перенаправился как /index.html?city=m%c3%bcnster
, что может или не может быть тем, что вам требуется.