.htaccess如何处理动态子域重定向到https而没有子域到www

时间:2016-02-08 02:22:12

标签: apache .htaccess

我有我的htaccess文件gitignored,在升级到Laravel 5.2时,我删除了服务器上的旧文件。我花了几个小时把它拼凑起来,现在我正在努力重新创造它。

我需要像

这样的东西
http://domain.com  

https://domain.com

转到

https://www.domain.com 

和所有其他通配符子域,例如:

http://myname.domain.com 

转到

https://myname.domain.com 

到目前为止,我有这个:

RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

1 个答案:

答案 0 :(得分:0)

要将子域和主域重定向到HTTPS,您可以使用:

RewriteEngine on

#--Redirect subdomain to https--#
RewriteCond %{HTTP_HOST} ^((?!www\.).+)\.domain.com$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NC,R,L]

#--Redirect maindomain to https --#
RewriteCond %{HTTP_HOST} ^(www\.)?domain.com$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^ https://www.domain.com%{REQUEST_URI} [NC,R,L]
#--Redirect non-www to www on SSL--#
RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteCond %{HTTPS} on
RewriteRule ^ https://www.example.com%{REQUEST_URI} [NC,L,R]

如果您确定重定向工作正常,请将R更改为R=301