使用 Apache2 和 mod_rewrite 将 https 请求重定向到子域

使用 Apache2 和 mod_rewrite 将 https 请求重定向到子域

我有一个网站,其子域上有 SSL 证书,我们将其称为 https:// ssl.maindomain.com。我想将 https:// maindomain.com 上的所有 https 请求重定向到 https:// ssl.maindomain.com,同时仍将所有 http 请求保留在 http:// maindomain.com 上。

这有可能吗?我在 Google 上搜索过,但什么也没找到。

(协议中的空格是因为我无法发布超链接)

谢谢,卢克

编辑: 明白了。这个办法奏效了。

RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ https://ssl.maindomain.com%{REQUEST_URI} [R,L]

答案1

使用 apache 中的重写模块...您需要放入 vhost 中的行主域名看起来像这样(请先测试,这尚未测试):

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) https://ssl.maindomain.com$1

基本上,打开引擎(第 1 行),如果 https 处于“开启”状态(第 2 行),则执行下一行:将 url 重写为 ssl 主域(第 3 行)。第三行的工作方式如下:

https://maindomain.com/mypagehttps://ssl.maindomain.com/mypage

https://maindomain.com/https://ssl.maindomain.com/

这只会在 https 开启的条件下 (RewriteCond) 触发。当 https 关闭时,即 http,您的流量应继续转到http://maindomain.com/

在生产环境中运行之前,请先在测试服务器中试用,以防这会干扰其他规则。HTH。

相关内容