Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

non www .htaccess redirect - ignore other subdomains

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.

thanks!

like image 950
MilMike Avatar asked Apr 12 '10 09:04

MilMike


2 Answers

Try this rule:

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

And to also take HTTPS into account:

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
like image 60
Gumbo Avatar answered Nov 07 '22 22:11

Gumbo


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.

like image 27
Pero Dordic Avatar answered Nov 07 '22 21:11

Pero Dordic