简体   繁体   中英

Force www. even with subdomain not working without /

I have a site example.com and also a subdomain and I want the following redirect:

subdomain.example.com -> www.subdomain.example.com

example.com -> www.example.com

I use the following code

RewriteEngine On

# Force www. always and SSL
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301, L]

# Force SSL if already www.
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301, L]

Now the problem is that subdomain.example.com doesn't redirect but subdomain.example.com/ does .

I also get a Server Error when going to example.com, although it does redirect to www. correctly.

The point with these redirects is so that I can in the same .htaccess file in the root folder hopefully redirect the subdomains to subdomain.com more easily, I have several domains on one server.

I think you can combine the directives together like this:

RewriteEngine On

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

=> Check if HTTPS is off, or if the domain name does not begin with www, and then redirect to https://www.whatever .

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