使用通配符子域重写Apache SSL

时间:2014-02-04 18:35:39

标签: apache mod-rewrite ssl

我正在尝试使用RewriteEngine在Apache中设置SSL重定向,该重定向将执行以下操作:

我的理由是,我正在开发一个使用免费SSL证书的项目,直到发布。此证书涵盖基本域,但不包括通配符子域,每次访问其中一个子域时都需要绕过警告。

编辑: 我相信我已经离这里很近了,但我仍然无法让HTTPS重定向到HTTP正常工作。

RewriteEngine on
# Redirect domain and www to HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} =mydomain.com [or]
RewriteCond %{HTTP_HOST} =www.mydomain.com
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Redirect wildcard subdomains to HTTP
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^(.+)\.mydomain\.com$ [NC]
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

1 个答案:

答案 0 :(得分:3)

想出来。通过将这些规则从sites-available / default文件移动到网站根目录中的.htaccess,我能够正常工作。

RewriteEngine on
# Redirect domain and www to HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} =mydomain.com [or]
RewriteCond %{HTTP_HOST} =www.mydomain.com
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Redirect wildcard subdomains to HTTP
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^(.+)\.mydomain\.com$ [NC]
RewriteCond %{HTTP_HOST} !=www.mydomain.com
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]