Forum Moderators: phranque
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /features(/[^\ ]*)?\ HTTP/
RewriteRule ^features(/(.*))?$ http://subdomain.example.com/$2 [R=301,L]
# Externally redirect direct client requests for subdomain-subdirectory
# URLs back to canonical subdomain root URL
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /features(/[^\ ]*)?\ HTTP/
RewriteRule ^features(/(.*))?$ http://subdomain.example.com/$2 [R=301,L]
#
# Internally rewrite requests for subdomain.example.com URLs to
# the /features filepath, unless this has already been done
RewriteCond $1 !^features/
RewriteCond %{HTTP_HOST} ^subdomain\.example\.com
RewriteRule ^(.*)$ /features/$1 [L]
# Externally redirect direct client requests for subdomain-subdirectory
# URLs back to canonical subdomain root URLs
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /subdomains/([a-z0-9\-]+)(/[^\ ]*)?\ HTTP/
RewriteRule ^subdomains/([a-z0-9\-]+)(/(.*))?$ http://$1.example.com/$3 [R=301,L]
#
# Internally rewrite requests for <subdomain>.example.com URLs to the
# /subdomains/<subdomain>/ filepath, unless this has already been done
RewriteCond $1 !^subdomains/
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([a-z0-9\-]+)\.example\.com
RewriteRule ^(.*)$ /subdomains/%1/$1 [L]
# Externally redirect direct client requests for subdomain-subdirectory URLs which
# resolve to existing subdirectories back to canonical subdomain root URLs
RewriteCond $1 !^(features|about-us|signup|etc)$
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([a-z0-9\-]+)/[^\ ]*\ HTTP/
RewriteCond %{DOCUMENT_ROOT}/$1 -d
RewriteRule ^([a-z0-9\-]+)/(.*)$ http://$1.example.com/$2 [R=301,L]
#
# Internally rewrite requests for <subdomain>.example.com URLs to the
# /<subdomain>/ directory filepath, unless this has already been done
RewriteCond $1 !^(features|about-us|signup|etc)
RewriteCond %{REDIRECT_STATUS} =""
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([a-z0-9\-]+)\.example\.com
RewriteRule ^(.*)$ /%1/$1 [L]
[edited by: jdMorgan at 8:34 pm (utc) on Aug 26, 2010]
# Externally redirect direct client requests for subdomain-subdirectory URLs which
# resolve to existing subdirectories back to canonical subdomain root URLs
RewriteCond $1 !^(features|about-us|signup|etc)
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([a-z0-9\-]+)/[^\ ]*\ HTTP/
RewriteCond %{DOCUMENT_ROOT}/$1 -d
RewriteRule ^([a-z0-9\-]+)/(.*)$ http://$1.example.com/$2 [R=301,L]
#
# Externally redirect requests for /features, /about-us, /signup, /etc in subdomains to main domain
RewriteCond %{HTTP_HOST} ^([a-z0-9\-]+)\.example\.com
RewriteCond %1 !^www\.
RewriteRule ^(features|about-us|signup|etc(/.*))$ http://example.com/$1 [R=301,L]
#
# Externally redirect all www hostnames to non-www hostnames
RewriteCond %{HTTP_HOST} ^(([a-z0-9\-]+\.)*)www\.(([a-z0-9\-]+\.)*)example\.com
RewriteRule ^(.*)$ http://%1%3example.com/$1 [R=301,L]
#
# Internally rewrite requests for <subdomain>.example.com URLs to the
# /<subdomain>/ directory filepath, unless this has already been done
RewriteCond $1 !^(features|about-us|signup|etc)
RewriteCond %{REDIRECT_STATUS} =""
RewriteCond %{HTTP_HOST} ^([a-z0-9\-]+)\.example\.com
RewriteCond %1 !^www\.
RewriteRule ^(.*)$ /%1/$1 [L]