: .htaccess directory to subdomain 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
I have been trying to make a subdomain from a directory (made by .htaccess) to be used as the main page starting like domain.com/sub/2/3/4.html and turning into sub.domain.com/2/3/4.html.
The folder system goes like:
wwwsub23
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 ^(.*)$ www.domain.com/ [L,R=301]
RedirectMatch 301 ^/sub/(.*)$ sub.domain.com/
It is successful with changing the domain path to 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.
More posts by @Speyer207
2 Comments
Sorted by latest first Latest Oldest Best
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 %{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 (.*) %1.%2/ [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/ -f [OR]
RewriteCond %{DOCUMENT_ROOT}/subdomains/%1/ -d
RewriteRule (.*) /subdomains/%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 ^(.*)$ blog.example.com/ [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.
Terms of Use Create Support ticket Your support tickets Stock Market News! © vmapp.org2024 All Rights reserved.