简体   繁体   中英

Redirecting non-www to www, but keeping other sub-domains intact

I have 5 web pages with different domain names. Each of them uses the same directory and the same .htaccess file. I've redirected non www urls to www with this lines:

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

Now I would like to keep redirecting non wwws to wwws, but I would also like to keep other subdomains without www. For example: domain1.com should redirect to www.domain1.com and subdomain1.domain1.com should still be subdomain1.domain1.com and should not redirect to www.subdomain1.domain1.com .

Keep in mind I have 5 webpages hosted from the same directory and there are more to come. I don't want to change .htaccess file everytime there is a page added.

I don't want to mess up my .htaccess file so I need your help!

PS: Is there a possibility to take https into account. https://domain.com to https://www.domain.com http://domain.com to http://www.domain.com https://sub.domain.com to https://sub.domain.com http://sub.domain.com to http://sub.domain.com

Thank you in advance for your answers!

Just target your rule for main domain:

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ [NC]
RewriteCond %{HTTPS}s on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS}s on(s)| and %1 is used to maintain http/https in target URL.

Make sure to clear your browser cache when testing this change.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM