Question: I have been trying to make a subdomain from a directory (made by *.htaccess*) to be used as the main page starting like `http://domain.com/sub/2/3/4.html` and turning into `http://sub.domain.com/2/3/4.html`.

The folder system goes like:

```
www\sub\2\3\

```

in `www` there is a `index.html` and in the sub folder there is a different `index.html`.

I currently have this code which I found on another site:

```
Options -Indexes +FollowSymLinks

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

RedirectMatch 301 ^/sub/(.*)$ http://sub.domain.com/$1

```

It is successful with changing the domain path to `http://sub.domain.com/`, but it is not successful in changing the page shown from the index in the `www` directory to the index in the sub directory.

It is also not successful in allowing to open other pages, i.e. not allowing `sub.domain.com/2/3/4.html`. If anyone can give any advice it would be much appreciated.

Answer: 
I have found some fantastic code for the .htaccess
that converts any folder in the main www directory into sub-domains
e.g. www/somefolder turns into somefolder.domain.com
you can also set it so that any directory inside a certain directory becomes a subdomain
e.g. www/folder/somefolder turns into somefolder.domain.com

the code below is set to redirect directory's inside a specific directory 

```
Options +FollowSymLinks -Multiviews
RewriteEngine on
RewriteBase /
#
# Canonicalize the hostname
RewriteCond www.%{HTTP_HOST} ^(www)\.(example\.com) [OR]
RewriteCond %{HTTP_HOST} ^www\.([^.]+)\.(example\.com) [OR]
RewriteCond %{HTTP_HOST} ^([^.]+)\.www\.(example\.com) [OR]
RewriteCond %{HTTP_HOST} ^([^.]+)\.(example\.com). [OR]
RewriteCond %{HTTP_HOST} ^([^.]+)\.(example\.com):[0-9]+
RewriteRule (.*) http://%1.%2/$1 [R=301,L]
#
# If subdomain is NOT www
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
# Extract (required) subdomain to %1
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com$
# Rewrite if requested URL resolves to existing file or subdirectory in /subdomains/<subdomain>/ path
RewriteCond %{DOCUMENT_ROOT}/subdomains/%1/$1 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/subdomains/%1/$1 -d
RewriteRule (.*) /subdomains/%1/$1 [L]

```

simply change 'example.com' to your domain e.g. 'domain.com'
make sure you don't remove any of the other symbols apart from dots .
currently the directory's in the folder called 'subdomains' will change into a subdomain e.g. www/subdomains/blog will turn into 'blog.domain.com'
to set it to just change the folders in the www directory to subdomains 
e.g. www/blog will turn into 'blog.domain.com'

if you want to automatically forward to a subdomain e.g. blog.domain.com
you will need to put this at the end of the other code

```
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://blog.example.com/$1 [R=301,L]

```

hope this works for everyone it took me ages to find a solution to this horrible problem
thanks 
Reblerebel
You need to configure a apache virtual host for `sub.domain.com` with `www/sub` as its DirectoryRoot.