5

Sorry if this has been covered, I can't find anything on this specifically.

I have wildcard subdomains on (*.mysite.com) I need a mod_rewrite expression for this rewrite:

bob.mysite.com => mysite.com/users/index.php?user=bob

bob.mysite.com/profile/ => mysite.com/users/index.php?user=bob/profile/

Obviously "bob" and "profile" are just examples, I need the general case. Thanks for your help!

1 Answer 1

3

The $ operator will let you extract backreferences from matches in rewrite rules and the % operator will let you extract references from conditions.

RewriteCond %{HTTP_HOST} !www.mysite.com$ [NC] # Presuming you don't want to do www
RewriteCond %{HTTP_HOST} ^(.*)\.mysite\.com [NC] # Catch subdomain
RewriteCond %{REQUEST_URI} !index\.php [NC] # Don't rewrite if we already have
RewriteRule ^(.*)$ /users/index.php?user=%1$1 [L]
2
  • this almost works, except the $1 backreference returns the new address /users/index.php instead of the requested /profile/. Can you help?
    – user745668
    Commented May 25, 2011 at 1:13
  • hmm... yeah, it will be rewriting it twice. Try with the edit included above. Commented May 25, 2011 at 7:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.