如何使用htaccess将我的子域名从http重定向到https?

时间:2017-09-07 22:44:47

标签: apache .htaccess redirect mod-rewrite

我在我正在开发的网站上创建了一个子域名,我希望它能够自动重定向到https,特别是因为如果我尝试通过键入http://test.example.com来访问它,它就不起作用了 - 它似乎等待服务器响应一段时间(可能是30秒),然后最终解析为https://www.test.example.com(这是问题的线索......?) 我尝试在网站根目录中的.htaccess 中添加一条规则来捕获所有子域名,如下所示:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^((?!www\.)[^.]+)\.example\.com$
RewriteRule ^ https://%1.example.com%{REQUEST_URI} [NE,L,R]

(......但无济于事)

我还尝试了各种其他方法,位于子域主目录的htaccess文件中,如下所示(当然每次一个):

#Method 1
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

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

#Method 3
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} =test.example.com
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301]

#Method 4
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^((?!www\.)[^.]+)\.example\.com$
RewriteRule ^ https://%1.example.com%{REQUEST_URI} [NE,L,R]

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

这些都没有将http://test.example.com子域重定向到https - 除了方法2之外,它们什么都不做,它返回了太多的重定向'错误。 我在这里想念的是什么? 谢谢

0 个答案:

没有答案