我遇到了一个奇怪的问题,Apache2 在一段时间内运行正常,但比我测试的要晚http://example.com它不再自动重定向到 SSL。
(要明确的是 - 以下问题仅与一个虚拟主机有关,该虚拟主机应该重定向到该服务的 https 版本,该网站的 https 版本运行正常)
没有任何帮助,重新启动主机,重新启动 apache2 等等。
这是我的 http 虚拟主机的配置:
<VirtualHost x.x.x.x:80>
ServerName example.com
ServerAlias www.example.com
ServerSignature Off
DocumentRoot /var/www/non-ssl
Redirect permanent / https://example.com/
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</IfModule>
<Directory />
Options All
AllowOverride All
Order deny,allow
Allow from all
</Directory>
Redirect / https://example.com/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
LogLevel warn
</VirtualHost>
我甚至把这个 index.html 放入了 /var/www/non-ssl
<meta http-equiv="refresh" content="0; url=https://example.com/" />
每次我进入http://example.com它给了我 403 Forbidden。
Forbidden
You don't have permission to access / on this server.
index.html 文件的权限如下:
-rw-r--r-- 1 root root 69 Jun 5 18:07 index.html
该操作系统是 Debian 稳定版。
PS,我知道Redirect
虚拟主机配置中的语句重复,但无论我在那里看到哪一个都不重要,它们都是一样的,总是 403。
编辑:看来连接到http://www.example.com重定向至https://www.example.com 但连接到http://example.com抛出 403。我甚至重新启动了(停止并启动服务)apache,以查看此问题是否仍然存在http://example.com而且它仍然存在。