如何将非www重定向到带有SSL的www,用于特定域而不是所有托管域

时间:2011-11-26 08:14:45

标签: .htaccess redirect

我已test.yoursite.com停在example.com并拥有SSL多域证书。

我要问的是:

  • 请求http://example.com时,.htaccess应将其重定向到https://www.example.com;
  • http://test.yoursite.com请求时,htaccess应将其重定向到https://test.yoursite.com

其中一个方向应该适用于www和SSL重定向,另一个方向适用于SSL重定向。

顺便说一句,我也example.net停在同一台主机上。我尝试了几件不起作用的东西。等待你的帮助。

1 个答案:

答案 0 :(得分:1)

尝试

# Dealing with a domain with/without www
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.([^\.]+)$
RewriteRule ^(.*)$ https://www.%2.%3/$1 [L,R]

# Dealing with a domain that doesn't care about www
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^([^\.]+)\.([^\.]+)\.([^\.]+)$
RewriteRule ^(.*)$ https://%1.%2.%3/$1 [L,R]

第一条规则会将http://www.example.com/something重定向到https://www.example.com/something以及http://example.net/foo重定向到https://www.example.net/foo

第二条规则会将不关心“www”的主机重定向,例如http://subdomain.domain.com/barhttps://subdomain.domain.com/bar

但是,它不会重定向http://sub-sub.subdomain.domain.com/