Své vzory byste měli co nejkonkrétnější. Zkuste tedy tato pravidla:
# 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]
Zde používám [^/]+
(jeden nebo více libovolných znaků kromě /
). Pokud však chcete povolit pouze určité znaky, měli byste to odrazit ve svých vzorech (viz například návrh webdestroya).
A měli byste se také ujistit, že používáte jednoznačné URI. Než začnete přemýšlet o pravidlech, měli byste vytvořit dobře zpracovanou strukturu URI. Víte, Super URI se nemění .