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

如何通过Vhost配置实现https://example.com到https://www.example.com的HTTPS重定向(无需.htaccess)

调整Apache虚拟主机配置实现HTTPS非www到www的重定向

没问题,咱们只需要对现有配置做两处调整,就能实现把https://example.com的请求永久跳转到https://www.example.com,同时保持原有的HTTP到HTTPS www的重定向逻辑:

1. 完善80端口虚拟主机(处理所有HTTP请求)

修改你现有的80端口虚拟主机配置,添加ServerAlias来覆盖不带www的HTTP请求,确保所有HTTP访问(不管带不带www)都跳转到HTTPS的www版本:

<Virtualhost *:80>
    ServerName www.example.com
    ServerAlias example.com  # 新增这一行,覆盖不带www的HTTP请求
    DocumentRoot /var/www/html
    RewriteEngine on
    RewriteRule ^/?(.*) https://www.example.com/$1 [R=301,L]
</VirtualHost>

2. 新增443端口虚拟主机(处理非www的HTTPS请求)

因为HTTPS请求需要对应域名的SSL证书,所以我们要新增一个专门处理example.com的HTTPS虚拟主机,配置好SSL证书后做重定向:

<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/html

    # 复制你现有www.example.com:443配置中的SSL相关内容
    # 以下是示例,替换成你实际的证书路径
    SSLCertificateFile /path/to/your/certificate.crt
    SSLCertificateKeyFile /path/to/your/private.key
    SSLCertificateChainFile /path/to/your/chain.crt  # 若有证书链则添加

    RewriteEngine on
    RewriteRule ^/?(.*) https://www.example.com/$1 [R=301,L]
</VirtualHost>

关键说明:

  • SSL证书要求:你的SSL证书必须包含example.com和www.example.com两个域名(即SAN证书),否则浏览器会提示证书错误。如果现有证书不包含,需要重新申请覆盖这两个域名的证书。
  • 重定向类型:R=301是永久重定向,对SEO友好;如果只是测试阶段,可以先用R=302临时重定向,确认没问题后再改回301。
  • 生效步骤:配置修改完成后,记得重启Apache服务使配置生效,比如执行:
    # Debian/Ubuntu系统
    sudo systemctl restart apache2
    
    # CentOS/RHEL系统
    sudo systemctl restart httpd
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 14:07:28