It works for me:
#On rewrite RewriteEngine On # Allow any files or directories that exist to be displayed directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # rewrite domain.com/username.php to username RewriteRule ^([A-Za-z0-9_-]+)/?$ $1.php [NC,L] RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9]+)/?$ $1/$2.php [NC,L] RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+)/?$ $1/$2/$3.php [NC,L]
And more: Look at my rewrite file for social portal like fb:
# allow only from ip range /8 /16 /24 /31 #Order deny,allow #Deny from all #Allow from 89.230.0.0/16 # On rewrite RewriteEngine On # [NC]- case-insensitive # [L] - Last Rule , stop the rewriting process here # [OR] = Or - If it matches this condition or the next # [QSA] - Append query string to rewriting url # [R] - redirect [R=301] move permanently, 302 - temporarily, 403 - Forbidden, 404 - Not Found, 410 - Gone # fix folder redirect images and css js/images/css/media RewriteRule ^.+?/((img|css|js|media|upload|posts)/.+)$ /$1 [L,R=301,NC] # Allow any files or directories that exist to be displayed directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # does not work on IIS windows server url rewrite when importing # RewriteCond %[REQUEST_FILENAME] !-l # rewrite example.xx/index.php na example.xx/ RewriteCond %{THE_REQUEST} ^.*/index\.php RewriteRule ^(.*)index\.(php|html?)$ / [R=301,NC,L] #portfolio rewrite folder rewrite # RewriteRule ^([portfolio]+)/?$ /portfolio/index.php?id=$1 [NC,L] # pretty url example.xx/id/post/number # rewrite domain.com/username like twitter or facebook users RewriteRule ^([A-za-z0-9_-]+)/?$ index.php?username=$1 [NC,L] # domain.com/post/name RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9]+)/?$ profil.php?id=$1&menu=$2 [NC,L] # domain.com/cat/post/id RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9]+)/([0-9]+)/?$ profil.php?id=$1&menu=$2&page=$3 [NC,L] #RewriteRule ^([A-Za-z0-9_-]+)/(ustawienia)/?$ ustawienia.php?id=$1&menu=$2 [NC,L] #RewriteRule ^([A-Za-z0-9_-]+)/(wpisy)/?$ profil0.php?id=$1&menu=$2 [QSA,NC,L] #RewriteRule ^([A-Za-z0-9_-]+)/(fani)/?$ profil1.php?id=$1&menu=$2 [QSA,NC,L] #RewriteRule ^([A-Za-z0-9_-]+)/(ogladasz)/?$ profil2.php?id=$1&menu=$2 [QSA,NC,L] #RewriteRule ^([A-Za-z0-9_-]+)/(zdjecia)/?$ profil3.php?id=$1&menu=$2 [QSA,NC,L] #RewriteRule ^([A-Za-z0-9_-]+)/(video)/?$ profil4.php?id=$1&menu=$2 [QSA,NC,L] #RewriteRule ^([A-Za-z0-9_-]+)/(ulubione)/?$ profil5.php?id=$1&menu=$2 [QSA,NC,L] #RewriteRule ^([A-Za-z0-9_-]+)/(wiadomosci)/?$ profil6.php?id=$1&menu=$2 [QSA,NC,L] #RewriteRule ^([A-za-z0-9_-]+)/?$ profil.php?id=$1 [NC,L] #RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9]+)/?$ profil.php?id=$1&menu=$2 [NC,L] #RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+)/?$ index.php?id=$1&dir=$2&post=$3 [NC,L] # Redirect all subdomains # RewriteCond %{HTTP_HOST} ^(.*)\.breakermind\.com # RewriteRule ^(.*)$ http://breakermind.com/$1 [R=301,QSA,NC,L] # Redirect all subdomains # RewriteCond %{HTTP_HOST} ^www.ns2.breakermind.com [NC] # RewriteRule ^(.*)$ http://breakermind.com/$1 [R=301,QSA,NC,L] # RewriteCond %{HTTP_HOST} ^ns2.breakermind.com [NC] # RewriteRule ^(.*)$ http://breakermind.com/$1 [R=301,QSA,NC,L] # Redirect from www. to non-www (unhash if need) # RewriteCond %{HTTP_HOST} ^www.breakermind.com [NC] # RewriteRule ^(.*)$ http://breakermind.com/$1 [R=301,QSA,NC,L] # Redirect from http:// to https:// (from no-ssl to ssl) #RewriteCond %{SERVER_PORT} 80 #RewriteRule ^(.*)$ https://breakermind.com/$1 [R=301,QSA,NC,L] ErrorDocument 400 /er404.html ErrorDocument 401 /er404.html ErrorDocument 402 /er404.html ErrorDocument 403 /er403.html ErrorDocument 404 /er404.html ErrorDocument 500 /er404.html ErrorDocument 502 /er404.html ErrorDocument 504 /er404.html #RewriteEngin On #RewriteCond %[REQUEST_FILENAME] !-d #RewriteCond %[REQUEST_FILENAME] !-f #RewriteCond %[REQUEST_FILENAME] !-l #RewriteRule ^(.+)$ index.php?c=$1 [QSA,L] # # \w = [A-Za-z0-9_] \d = [0-9]
And here from my blog system:
Options +FollowSymLinks RewriteEngine On RewriteCond %{THE_REQUEST} ^.*/index\.php RewriteRule ^(.*)index\.(php|html?)$ / [R=301,NC,L] # category RewriteRule ^category/?$ index.php?id=0&page=0 [NC,L] RewriteRule ^category/([A-Za-z0-9]+)/?$ index.php?id=$1&page=0 [NC,L] RewriteRule ^category/([A-Za-z0-9]+)/([0-9]+)/?$ index.php?id=$1&page=$2 [NC,L] RewriteRule ^category/([A-Za-z0-9]+)/([0-9]+)/([A-Za-z0-9]+)/?$ index.php?id=$1&page=$2&title=$3 [NC,L] # autor RewriteRule ^autor/?$ index.php?id=0&page=0 [NC,L] RewriteRule ^autor/([A-Za-z0-9]+)/?$ index.php?id=$1&page=0 [NC,L] RewriteRule ^autor/([A-Za-z0-9]+)/([0-9]+)/?$ index.php?id=$1&page=$2 [NC,L] # article, gallery, tags RewriteRule ^article/([A-Za-z0-9]+)/?$ article.php?id=$1 [NC,L] RewriteRule ^gallery/([A-Za-z0-9]+)/?$ gallery.php?id=$1 [NC,L] RewriteRule ^tags/([A-Za-z0-9]+)/?$ tags.php?id=$1 [NC,L] RewriteRule ^archive/([0-9]+)/([0-9]+)/?$ archive.php?year=$1&month=$2 [NC,L] # custom page rewrite RewriteRule ^page/([A-Za-z0-9]+)/?$ page.php?id=$1 [NC,L] # fix folder redirect images and css js/images/css/media RewriteRule ^.+?/((admin|img|css|js|media|upload|posts)/.+)$ /blog/$1 [L,R=301,NC] # user or category user.php # RewriteRule ^([A-Za-z0-9]+)/?$ index.php?user=$1 [NC,L] # example # RewriteRule ^([folder])/([category])/([A-Za-z0-9]+)/?$ index.php?id=$3&cat=$2 [NC,L]
showthread?id=XXRewriteRule can not match query strings. So that's probably why it's not working. What is your main goal?