我正在运行基于 Ubuntu 12.04 Server 的 Apache2 服务器,该服务器带有 SSL。我的配置似乎正确,可以通过端口 443 实现 SSL 连接,而且起初,我甚至没有为端口 80 上的任何 VirtualHost 配置服务器。
现在,我想配置服务器以通过端口 80 接收任何 HTTP 请求,并 100% 自动将它们重定向到我的端口 443 虚拟主机。
我当前尝试的一个技巧是在每个目录中使用一个 .htaccess 文件,并遵循以下规则:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>
要正确重定向到 *:443,需要什么样的 VirtualHost *:80 基础框架?
答案1
只需使用
RedirectMatch ^/(.*)$ https://%{SERVER_NAME}/$1
在虚拟主机中。
您需要将 DocumentRoot 设置到某个位置,以便在 mod_alias 出现故障时可以进行后备。