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

已有SSL证书,如何配置TYPO3同时支持HTTP与HTTPS访问?

TYPO3同时兼容HTTP和HTTPS的解决方案

一、检查Apache配置

  • 确认Apache同时监听80(HTTP)和443(HTTPS)端口,配置文件中需包含:
    Listen 80
    Listen 443
    
  • 为两种协议分别配置虚拟主机,确保HTTPS虚拟主机正确加载Let's Encrypt证书:
    <VirtualHost *:80>
        ServerName yourdomain.com
        DocumentRoot /path/to/your/site
        # 无需强制跳转,保留默认访问逻辑
    </VirtualHost>
    
    <VirtualHost *:443>
        ServerName yourdomain.com
        DocumentRoot /path/to/your/site
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
    </VirtualHost>
    
  • 启用mod_ssl和mod_rewrite模块,执行命令:
    a2enmod ssl rewrite
    systemctl restart apache2
    

二、调整TYPO3系统配置

  • 修改typo3conf/LocalConfiguration.php,设置适配双协议的参数:
    // 信任当前域名,避免主机头限制
    $GLOBALS['TYPO3_CONF_VARS']['SYS']['trustedHostsPattern'] = 'yourdomain\.com';
    // 允许HTTP下使用cookie(若仅需HTTPS可用则设为true)
    $GLOBALS['TYPO3_CONF_VARS']['SYS']['cookieSecure'] = false;
    // 关闭强制HTTPS的安全头部
    $GLOBALS['TYPO3_CONF_VARS']['FE']['secureHeaders'] = [];
    // 取消页面不存在时的强制跳转规则
    $GLOBALS['TYPO3_CONF_VARS']['FE']['pageNotFound_handling'] = '';
    
  • 进入TYPO3后台「站点管理」,编辑目标站点:
    • 不要勾选「强制HTTPS」选项
    • 将站点基础URL设置为协议相对格式(如//yourdomain.com/),或留空让系统自动适配当前访问协议
    • 确认config.absRefPrefix配置为/或空值,避免硬编码HTTP/HTTPS前缀

三、清除缓存

  • 在TYPO3后台点击「清除全部缓存」,包括页面缓存、配置缓存和自动加载缓存
  • 清除浏览器本地缓存,避免旧的跳转规则或页面缓存干扰

四、排查强制跳转规则

  • 检查站点根目录的.htaccess文件,若存在如下强制跳转HTTPS的规则,需注释或删除:
    # RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
  • 确认Let's Encrypt的certbot工具未自动添加全局强制跳转规则,可检查Apache的le-ssl.conf等相关配置文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 12:15:44