Du bör göra dina mönster så specifika som möjligt. Så prova dessa regler:
# 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]
Här använder jag [^/]+
(ett eller flera godtyckliga tecken utom /
). Men om du bara vill tillåta specifika tecken bör du återspegla det i dina mönster (se till exempel webdestroyas förslag).
Och du bör också se till att du använder entydiga URI:er. Du bör utveckla en väl genomarbetad URI-struktur innan du tänker på regler. Du vet, Cool URI ändras inte .