I am migrating my application which provides a subsite for each user from domain.com/~user to user.domain.com. In order to do this, I wrote the following RewriteRule
:
RewriteRule ^~([a-z_]+)(/.*)?$ http://$1.%{HTTP_HOST}$2 [R=301,QSA,NC]
However, %{HTTP_HOST}
doesn't do exactly what I need it to, because if for instance a user browses to www.domain.com/~user
, it'll redirect to user.www.domain.com
which is obviously not what I'm looking for.
I know that I can replace %{HTTP_HOST}
with a hardcoded domain, but I don't want to do this either, because I will be rolling out the changes on multiple domains and don't want to have to customize it for each one. Is there a better way to make a singular change without hardcoding? (Furthermore, what if the base domain already has a subdomain -- ie. sub.domain.com/~user
-> user.sub.domain.com
)