htaccess将所有子域重定向到https,除了www

时间:2011-06-10 15:27:31

标签: apache .htaccess

我想将所有子域名(我在apache虚拟主机中设置的通配符子域名)重定向到https(如果是http),除了www.domain.com

之外的其他所有子域名

任何想法都非常感激。

这是我到目前为止所拥有的:

# Redirect subdomains to https
#RewriteCond %{HTTPS} off
#RewriteCond %{HTTP_HOST} ^(*)\. [NC]
#RewriteCond %{HTTP_HOST} !^(www)\. [NC]
#RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

谢谢!

2 个答案:

答案 0 :(得分:5)

在.htaccess文件中尝试此代码:

Options +FollowSymlinks -MultiViews
RewriteEngine On

RewriteCond %{SERVER_PORT} =80
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

答案 1 :(得分:2)

这可以帮到你:

RewriteCond %{HTTP_HOST} !^(www\.)localhost.com$
RewriteCond %{HTTP_HOST} ^(.*?)\.localhost.com$
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*?)$ https://%{HTTP_HOST} [nc]

首先RewriteCond:如果网站没有以www

开头

第二个RewriteCond:获取任何子域

第三个RewriteCond:检查https是否已在请求的网址

RewriteRule:重定向到https版网站