有关配置.HTaccess文件以将HTTP子域重定向到HTTPS等效的建议

时间:2011-03-19 23:21:47

标签: .htaccess ssl redirect https subdomain

我确信这个问题有一个简单的答案,但是我已经通过可用的线程进行了搜索,它要么不在那里,要么我太无知了,无法从头开始识别它。 This似乎是答案,但我无法正确配置。

问题:如何设置.htaccess以便将所有子域转发到其https等效项,同时还允许主域本身移植到其https等效项?换句话说:

  
      
  1. hxxp://subdomain1.domain.com - > hxxps://subdomain1.domain.com
  2.   
  3. hxxp://subdomain2.domain.com - > hxxps://subdomain2.domain.com
  4.         

    ...等等,但也......

         
        
    1. hxxp://domain.com - > hxxps://domain.com
    2.   

当前配置: 我的.htaccess设置为提供无条件转发,如下所示:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://domain.com/$1 [R,L]

为了达到我的目的,我认为必须有一些方法来定义一个通配符,并将该通配符的结果作为子域 - 无论是subdomain1,subdomain2还是没有值 - 传递给实际的重定向。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

我没有对此进行测试,但它应该允许您捕获子域以及请求。

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^(.*)\.yourdomain\.com$
RewriteRule ^(.*)$ https://%1.domain.com/$1 [R,L]

但是,此规则不适用于不包含子目录的请求,因此您实际上需要两个规则。

RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^yourdomain\.com$
RewriteRule ^(.*)$ https://domain.com/$1 [R,L]

答案 1 :(得分:0)

  1. 转到您的子域文件夹
  2. 在此文件夹中创建.htaccess文件
  3. 并粘贴以下代码:
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]