php - mod_rewrite not working in htaccess -


in .htaccess file in root of directory, have this;

rewriteengine on rewritebase /  rewriterule ^website-comments/webid/([^/]*)$ /website-comments?webid=$1 [l] 

but reason not rewriting url, if i'm thinking correct if user visits www.website.com/website-comments?webid=1 should change url www.website.com/website-comments/webid/1 doesn't seem working, doing wrong? in advance

edit 1

other htaccess rules

rewritecond %{request_filename} !-d rewritecond %{request_filename}\.php -f rewriterule ^(.*)$ $1.php [l] 

apache's mod_rewrite when used basic rules can silently serve internal url users, cannot enforce use of internal url same simple rule. typically if want end users never use actual url (/website-comments?webid=123 in case) need first provide rule redirects away url matching in original http request using apache's variable %{the_request}.

rewriteengine on # don't need rewritebase rewritebase /  # first match url user requested. if ?webid=n # actual redirection pretty url # grab digits query string use in %1 rewritecond %{the_request} webid=(\d+) # ...only doing website-comments -- permanent redirect pretty url # client makes new request pretty url won't match above condition  # on next trip. # # since [r] automatically append old query string, add ? # onto end clear out query string rule doesn't match again , # go infinite loop. rewriterule website-comments /website-comments/webid/%1? [l,r=301]  # apply existing rule rewrite internally target resource rewriterule ^website-comments/webid/([^/]*)$ /website-comments?webid=$1 [l] 

the above (\d+) assumes webid integer. if that's not true , include other characters, consider using ([^&]+) instead match next & or end of string.


Comments

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -