Moodle 电子学习系统更新后,从 http 到 https 的重定向不再起作用。
环境:Debian 9、Bitnami Moodle 设备、Apache Web 服务器
防火墙已打开端口 80 和 443。您可以通过 https 访问该网站,并且该网站正常运行。
我试过这个 https://docs.bitnami.com/installer/apps/moodle/#how-to-force-https-redirection-with-apache 没有效果。
每次我输入没有 https 的 URL 时,我都会得到
错误请求 您的浏览器发送了此服务器无法理解的请求。原因:您正在向启用 SSL 的服务器端口发送纯 HTTP 请求。请使用 HTTPS 方案访问此 URL。
这是来自 apache 日志:
[2018 年 8 月 8 日星期三 16:16:45.827527] [mpm_event:notice] [pid 3827:tid 140588913918464] AH00491:捕获 SIGTERM,正在关闭
[2018 年 8 月 8 日星期三 16:16:49.917673] [ssl:warn] [pid 4503:tid 140413525754368] AH01909:localhost:443:0 服务器证书不包含与$ 匹配的 ID
[2018 年 8 月 8 日星期三 16:16:49.954349] [ssl:warn] [pid 4504:tid 140413525754368] AH01909:localhost:443:0服务器证书不包含与$匹配的ID[2018 年 8 月 8 日星期三 16:16:49.966243] [mpm_event:notice] [pid 4504:tid 140413525754368] AH00489:Apache/2.4.29 (Unix) OpenSSL/1.0.2n 已配置——恢复 norm$
[2018 年 8 月 8 日星期三 16:16:49.966287] [core:notice] [pid 4504:tid 140413525754368] AH00094:命令行:'/opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/ap$
我还尝试使用以下行修改 /opt/bitnami/apps/moodle/conf/httpd-prefix.conf:
DocumentRoot "/opt/bitnami/apps/moodle/htdocs"
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*) http://www.moodle.mysite.com/$1 [R,L]
Include "/opt/bitnami/apps/moodle/conf/httpd-app.conf"
没有帮助。每次更改后,我都会重新启动 Apache,删除浏览器缓存并尝试加载网页。
谢谢。
答案1
根据https://docs.bitnami.com/installer/apps/moodle/#how-to-force-https-redirection-with-apache应该RewriteRule
是 https 而不是 http,如上面的消息所示,另外DocumentRoot
指令应该引用 Apache 目录,而不是 moodle 目录:
<VirtualHost _default_:80>
DocumentRoot "/opt/bitnami/apache2/htdocs"
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
...
</VirtualHost>