Debian 11
配置文件:/etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
ServerName zabbix.example.ru
</VirtualHost>
<VirtualHost *:443>
ServerName zabbix.example.ru
DocumentRoot "/usr/share/zabbix/"
</VirtualHost>
如果我在浏览器中打开 zabbix.example.ru,它将通过 https 打开。但如果我手动打开http://zabbix.example.ru它不会重定向到 https
同样的设置(据我所知)在 FreeBSD 上对我来说是完美的,但在 Debian 上,我似乎应该做些其他的事情
/usr/sbin/apachectl -S
VirtualHost configuration:
*:80 zabbix.lasil.ru (/etc/apache2/sites-enabled/000-default.conf:1)
*:443 zabbix.lasil.ru (/etc/apache2/sites-enabled/000-default.conf:9)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex ssl-stapling: using_defaults
Mutex proxy: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/run/apache2/" mechanism=default
Mutex mpm-accept: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
更新型多巴胺:我有点搞错了问题,不仅没有重定向,还发出这样的错误
Bad Request
Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.
Apache/2.4.54 (Debian) Server at zabbix.example.ru Port 80
答案1
您想要永久、无条件的重定向。只需不要使用 mod_rewrite:
<VirtualHost *:80>
ServerName zabbix.example.ru
Redirect permanent / https://zabbix.example.ru/
</VirtualHost>
答案2
谢谢大家。
阅读评论后,我了解到网站配置(其中启用了 SSL)(在 /etc/apache2/conf-enabled 中文件夹)不限于任何 VirtualHost,因此可以全部服务器,不仅仅是 443 端口
我将其移至端口 433 上的 VirtualHost,问题就解决了
答案3
就我而言,我必须禁用 000-default 站点。
# a2dissite 000-default
# systemctl reload apache2
干杯!