apache - htaccess Replace spaces and dots with a dash -


ok i've got htaccess code work point... i'm stuck.

here original url:

example.com/search/store_info.php?store=113&dentist=dr.%20john%20doe

what i'm trying achieve clean url no dots / periods or spaces (%20) this:

example.com/search/113/dr-john-doe

however, htaccess code i'm using result:

example.com/search/113/dr.

the doctors name pulled database , has dot (.) behind every "dr" process stops in sense. i'm guessing because of dot?

here htaccess code have:

rewriteengine on  rewritebase /search/  rewritecond %{the_request} /store_info\.php\?store=([a-z0-9]+)&dentist=  ([a-z0-9]+) [nc] rewriterule ^ %1/%2/? [r=301,l]  rewriterule ^([a-z0-9]+)/([a-z0-9]+)/?$ store_info.php?store=$1&dentist=$2 [qsa,l,nc] 

you can use these rules:

options -multiviews rewriteengine on     rewritebase /search/  # redirect internal url pretty url rewritecond %{the_request} /store_info\.php\?store=([a-z0-9]+)&dentist=([^\s&]+) [nc] rewriterule ^ %1/%2/? [l,ne,r=301]  # skip files , directories rules below rewritecond %{request_filename} -f [or] rewritecond %{request_filename} -d rewriterule ^ - [l]  # recursive rule repeatedly convert dot or space hyphen rewriterule ^([a-z0-9]+)/([^\s.]*)[.\s]+(.*)$ $1/$2-$3 [nc,dpi,e=done:1]  # after hyphen conversion done redirect rewritecond %{env:done} =1 rewriterule ^([0-9a-z]+)/([^\s.]+)$ $1/$2 [r=301,ne,l]  # internally rewrite pretty url actual 1 rewriterule ^([a-z0-9]+)/([a-z0-9-]+)/?$ store_info.php?store=$1&dentist=$2 [qsa,l,nc] 

Comments