Dovresti rendere i tuoi schemi il più specifici possibile. Quindi prova queste regole:
# stop rewriting process if request can be mapped to file or directory
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# get user pages
RewriteRule ^([^/]+)\.html$ profile.php?user=$1 [L,QSA]
# get paces
RewriteRule ^([^/]+)/([^/]+)/$ place.php?state=$1&city=$2 [L,QSA]
Qui uso [^/]+
(uno o più caratteri arbitrari eccetto /
). Ma se vuoi consentire solo caratteri specifici, dovresti rifletterlo nei tuoi schemi (vedi ad esempio la proposta di webdestroya).
E dovresti anche assicurarti di utilizzare URI non ambigui. Dovresti sviluppare una struttura URI ben congegnata prima di pensare alle regole. Sai, Gli URI fantastici non cambiano .