Bạn nên làm cho các mẫu của bạn càng cụ thể càng tốt. Vì vậy, hãy thử các quy tắc sau:
# 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]
Ở đây tôi sử dụng [^/]+
(một hoặc nhiều ký tự tùy ý ngoại trừ /
). Nhưng nếu bạn chỉ muốn cho phép các ký tự cụ thể, bạn nên phản ánh điều đó trong các mẫu của mình (xem ví dụ:đề xuất của webdestroya).
Và bạn cũng nên đảm bảo rằng bạn sử dụng các URI rõ ràng. Bạn nên phát triển một cấu trúc URI được rèn luyện tốt trước khi nghĩ đến các quy tắc. Bạn biết đấy, URI thú vị không thay đổi .