Search code examples
.htaccessurlhttp-redirectmod-rewritedynamic

Rewrite dynamic url with parameter htaccess


I have dynamic url :

example.com/folder1/{dynamic number}/folder2?api=apikey&page=1 Which is the number {dynamic number} is any number

For example :

example.com/folder1/123/folder2?api=apikey&page=1

I never have folder "123" because its dynamic url

And final result would be example.com/myfolder?id=123&api=akipkey&page=1

I tried

RewriteRule ^folder1/([0-9]+)/folder2/ /myfolder?id=$1&api=akipkey&page=1

Results example.com/folder1/myfolder?123


Solution

  • Place following htaccess rules at the top of your htaccess Rules file. Please make sure to clear your browser cache before testing your URLs.

    Also make sure your htaccess file is residing besides myfolder folder/directory(NOT inside it along side of it).

    RewriteEngine ON
    RewriteBase /folder1/
    ##Rule for external rewrite to match url like: http://localhost:80/folder1/123/folder2?api=apikey&page=1 goes here.
    RewriteCond %{THE_REQUEST} \s/(?:[^/]*)/(\d+)/folder2\?(\S+)\s [NC]
    RewriteRule ^ myfolder?id=%1&%2 [R=301,L]
    
    ##Rules for internal rewrite to index.php here...
    RewriteCond %{THE_REQUEST} \s/myfolder\?id=(\S+)\s [NC]
    RewriteRule ^  folder1/myfolder/index.php?id=%1 [QSA,L]
    #####Rest of your htaccess Rules goes after this one....