Powinieneś uczynić swoje wzory tak konkretnymi, jak to tylko możliwe. Wypróbuj te zasady:
# 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]
Tutaj używam [^/]+
(jeden lub więcej dowolnych znaków z wyjątkiem /
). Ale jeśli chcesz zezwolić tylko na określone postacie, powinieneś odzwierciedlić to w swoich wzorcach (zobacz na przykład propozycję webdestroya).
Powinieneś także upewnić się, że używasz jednoznacznych identyfikatorów URI. Zanim zaczniesz myśleć o regułach, powinieneś opracować dobrze dopracowaną strukturę identyfikatora URI. Wiesz, Fajne identyfikatory URI się nie zmieniają .