Question: I am working on a new website bud I want to create a nice looking urls for my users. I don't know anything of `htaccess` and could not find my solution on google.

I need to link: 

* `user.mywebsite.com` **to>>** `mywebsite.com/users/user`
* `user2.mywebsite.com/contact` **to>>** `mywebsite.com/users/user2/contact`

Some links may not be linked like: 

* `www.mywebsite.com` may not link to `mywebsite.com/users/www`

Is this possibe to do with `htaccess`?
If yes can someone explain it to me?

Answer: 
Using mod\_rewrite, you can try:

```
RewriteEngine On

# the request URI doesn't already start with /users/
RewriteCond %{REQUEST_URI} !^/users/

# host doesn't start with www
RewriteCond %{HTTP_HOST} !^www\.  [NC]

# host starts with something else
RewriteCond %{HTTP_HOST} ^([^\.]+)\.mywebsite\.com$  [NC]

# rewrite
RewriteRule ^(.*)$ /users/%1/$1  [L]

```

This will make it so when someone enters <http://joe.mywebsite.com/some/page.html> they will be served the file in **/users/joe/some/page.html**
You can take a look at [VirtualDocumentRoot](http://httpd.apache.org/docs/2.1/vhosts/mass.html#homepages)

> 
> e.g. the documents for www.user.isp.com are found in /home/user/.
> 
> 
> 

```
# include part of the server name in the filenames
VirtualDocumentRoot /www/hosts/%2/docs

# single cgi-bin directory
ScriptAlias /cgi-bin/ /www/std-cgi/

```