You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VPS环境下如何将80端口请求重定向至443,仅启用HTTPS连接?

解决Apache HTTP自动跳转HTTPS的问题

你之前删掉80端口的VirtualHost后,访问http://my.domain会显示默认页,是因为Apache找不到对应域名的80端口配置,就自动用了默认的站点配置。要实现HTTP强制跳转到HTTPS,正确的做法是保留/新建80端口的VirtualHost专门做重定向,而非删掉它。

下面给两种可行的配置方式:

方法一:用简单的Redirect指令

在/etc/apache2/sites-available/myconf.conf里添加80端口的配置块:

<VirtualHost *:80>
    ServerName my.domain
    # 把所有HTTP请求永久重定向到HTTPS
    Redirect permanent / https://my.domain/
</VirtualHost>

# 保留你原来的443端口配置
<VirtualHost *:443>
    ServerName my.domain
    # 这里放你的SSL配置(SSLCertificateFile、SSLCertificateKeyFile等)
    # 还有你的代理配置(ProxyPass、ProxyPassReverse等)
</VirtualHost>

方法二:用mod_rewrite实现更灵活的跳转

如果需要保留原请求的路径和参数,可使用rewrite模块:
首先确保rewrite模块已启用:

sudo a2enmod rewrite

然后修改80端口的VirtualHost:

<VirtualHost *:80>
    ServerName my.domain
    RewriteEngine On
    # 强制跳转到HTTPS,保留原请求的路径和参数
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

最后生效配置

完成配置后,启用站点(未启用的话)并重启Apache:

sudo a2ensite myconf.conf
sudo systemctl restart apache2

这样设置后,用户访问http://my.domain就会自动跳转到https://my.domain,也不会再出现默认页面了。

内容的提问来源于stack exchange,提问作者Wiggle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 17:06:26