【发布时间】:2014-02-28 21:38:03
【问题描述】:
我正在尝试使用 RewriteEngine 在 Apache 中设置 SSL 重定向,该重定向将执行以下操作:
- 将流量重定向到 http://mydomain.com 或 http://www.mydomain.com 以使用 HTTPS
- 将流量重定向到任何其他子域 https://*.mydomain.com 以使用 HTTP 而不是 HTTPS
我的理由是我正在开发一个在启动之前使用免费 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]
【问题讨论】:
标签: apache mod-rewrite ssl