I have a .htaccess redirect for "non www" like this:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

it is working. But, i have also some subdomains other than www. If I call for example http://shop.example.com it redirects me to: http://www.shop.example.com

I dont want to write the subdomains into the .htaccess file, it should work automatically, just ignore anything else than www and '' like this:

if subdomain =='' -> redirect to www.HTTP_HOST....
elseif subdomain !='' && subdomain !='www' -> do nothing.


Accepted Answer

try this:

Options +FollowSymlinks

RewriteEngine On

RewriteCond %{HTTP_HOST}//s%{HTTPS} ^www.(.)//((s)on|s.)$ [NC]

RewriteRule ^ http%3://%1%{REQUEST_URI} [L,R=301]

Just tried it with internetagentur.drupal-webmaster.de (the subdomain) - the main is without www.

Written by Pero Dordic
This page was build to provide you fast access to the question and the direct accepted answer.
The content is written by members of the stackoverflow.com community.
It is licensed under cc-wiki