Search code examples
php.htaccessmod-rewritevanity-url

mod_rewrite: multi-level URL using a request parameter


I currently have this set up and working fine inside a users folder.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?i=$1

e.g 127.0.0.1/site/users/admin goes to 127.0.0.1/site/users/index.php?i=admin

Now as this is for a profile page, how would i do something such as this.

users/admin/activity

So that it would show the activity page for that user? I am totally confused on how i would go about this.

Would it be best to make the index.php accept a page $_GET variable? But the how would i get htaccess to work around it?


Solution

  • You rules will look something like this:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^/]+)/(.*)$ index.php?i=$1&page=$2  [L]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?i=$1  [L]
    

    Now your index.php should be getting 2 $_GET variables, i and page.