Search code examples
.htaccesshttp-redirectmod-rewriteurl-rewritingfriendly-url

htaccess url rewriting from request query to folder like and changing the php name


How can I do the following on the localhost which will be hosted later online:

I have this link:

http://localhost/shops/shop.php?c=15

I want to rewrite it to http://localhost/shops/shop/15

htaccess is(which is placed in C:\wamp\www\shops folder):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?RECIPES/(.*?)/?$ /single-product-details.php?=$1 [L]
RewriteRule ^/?SHOP/(.*?)/?$ /shop.php?=$1 [L]

Solution

  • With your shown samples, please try following Rules. Place your htaccess file along with shops folder(not inside it).

    Please make sure to clear your browser cache before testing your URLs.

    RewriteEngine ON
    RewriteBase /shops/
    ##External redirect to friendly url.
    RewriteCond %{THE_REQUEST} \s/shops/(shop)\.php\?c=(\d+)\s [NC]
    RewriteRule ^ /%1/%2? [R=301,L]
    ##Internal rewrite to actual url/files.
    RewriteRule ^([^/]*)/(.*)/? $1.php?c=$2 [QSA,L]