mod rewrite wildcard subdomain to folders

I'm trying to do a mod rewrite that will globally rewrite all subdomains to subdirectories unless it is www or example. The below code doesn't seem to work for some reason.
RewriteEngine On
 
#Grab the subdomain from the domain
RewriteCond %{HTTP_HOST} ^([^.]+).vsssl.com$
 
#Make sure the subdomain is not www or example
RewriteCond %{1} !^(www|example)$
 
#Check if the directory actually exists before we go there
RewriteCond /home/vsssl/public_html/%1 -d
 
#This stops it from looping
RewriteCond %{REQUEST_FILENAME} !^/home/vsssl/public_html/
 
#Finally, this is the actual rewrite
RewriteRule (.*) /home/vsssl/public_html/%1/$1 [Last]

Open in new window

LVL 2
MeridianManagementAsked:
Who is Participating?
 
caterham_wwwConnect With a Mentor Commented:
The capturing group was missing,
RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^.]+)\.vsssl\.com$
RewriteCond %{1} !^(www|example)$
RewriteCond /home/vsssl/public_html/%1 -d
RewriteCond %1<>%{REQUEST_FILENAME} !^([^<]+)<>/home/vsssl/public_html/\1
RewriteRule ^(.*) /%1/$1 [Last]

Open in new window

0
 
David S.Commented:
Try this:
RewriteEngine On
 
#Make sure the subdomain is not www or example
RewriteCond %{HTTP_HOST} !^(www|example)\.vsssl\.com$
 
#Grab the subdomain from the domain
RewriteCond %{HTTP_HOST} ^([^.]+)\.vsssl\.com$
 
#Check if the directory actually exists before we go there
RewriteCond /home/vsssl/public_html/%1 -d
 
#This stops it from looping
RewriteCond %{REQUEST_FILENAME} !^/home/vsssl/public_html/
 
#Finally, this is the actual rewrite
RewriteRule (.*) /home/vsssl/public_html/%1/$1 [Last]

Open in new window

0
 
MeridianManagementAuthor Commented:
no, it didn't work. In fact members.vsssl.com just goes to document root.
0
Improve Your Query Performance Tuning

In this FREE six-day email course, you'll learn from Janis Griffin, Database Performance Evangelist. She'll teach 12 steps that you can use to optimize your queries as much as possible and see measurable results in your work. Get started today!

 
David S.Commented:
Are you using httpd.conf or .htaccess?
0
 
MeridianManagementAuthor Commented:
.htaccess
0
 
caterham_wwwCommented:
"#This stops it from looping"

this stops your rewrite.
RewriteEngine On
 
#Grab the subdomain from the domain
RewriteCond %{HTTP_HOST} ^([^.]+)\.vsssl\.com$
 
#Make sure the subdomain is not www or example
RewriteCond %{1} !^(www|example)$
 
#Check if the directory actually exists before we go there
RewriteCond /home/vsssl/public_html/%1 -d
 
RewriteCond %1<>%{REQUEST_FILENAME} !^[^<]+<>/home/vsssl/public_html/\1/
 
RewriteRule ^(.*) /%1/$1 [Last]

Open in new window

0
 
MeridianManagementAuthor Commented:
The .htaccess gave me a internal configuration error. Here's one I created for one subdomain, I don't know if that helps. Maybe you could modify this one since it's working?

RewriteEngine On
RewriteCond %{HTTP_HOST}   ^[www\.]*members.vsssl.com [NC]
RewriteCond %{REQUEST_URI} !^/members/.*
RewriteRule   ^(.*)  /members/$1  [L]
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.