• 首页 > 
  • Apache服务启用HTTPS后访问网站资源会直接下载文件

Apache服务启用HTTPS后访问网站资源会直接下载文件

KB: 208186

 · 

更新时间:2021-05-06 10:45

免责声明: 本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

问题描述

Apache服务启用HTTPS后访问网站时会直接下载网站资源,但是使用HTTP访问正常。

问题原因

该问题的原因是由于Apache服务使用了mime_module模块,该模块导致访问网站时会直接下载网站资源。

解决方案

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
  1. 登录Apache服务所在服务器,查看Apache服务的httpd.conf配置文件,确认存在以下配置。
    LoadModule mime_module modules/mod_mime.so
  2. 编辑httpd.conf配置文件,使用井号(#)注释或删除该配置。
  3. 执行以下命令,确认没有报错信息,说明配置文件正常。
    httpd -t
  4. 执行以下命令,重启Apache服务。
    systemctl restart httpd
  5. 重新访问网站,确认不会下载网站资源。如果出现访问网站显示网站根目录的源码,请参考更多信息处理。
    说明:访问时建议清空浏览器和Apache服务的缓存,排除缓存的影响。

更多信息

如果出现访问网站显示网站根目录的源码,需要您从HTTP配置段中复制相关配置到HTTPS配置段中。案例如下:

案例背景

HTTPS的配置如下所示,还缺少一些相关配置。

解决方法

在HTTPS配置段中添加PHP和根目录(PATH)访问权限的相关配置,如下所示。

<VirtualHost *:443>
  DocumentRoot "[$Documentroot]"
  ServerName [$Domain_Name]
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!3DES:!MD5:!ADH:!RC4:!DH:!DHE
  SSLEngine on
  SSLCertificateFile "/www/server/apache/conf/5168zsssl/[$Domain_Name].crt"
  SSLCertificateKeyFile "/www/server/apache/conf/5168zsssl/[$Domain_Name].key"
  SSLCertificateChainFile "/www/server/apache/conf/5168zsssl/issuer.crt"

  #PHP
  <FilesMatch \.php$>
    SetHandler "proxy:unix:/tmp/php-cgi-56.sock|fcgi://localhost"
  </FilesMatch>

  #PATH
<Directory "[$Documentroot]">
    SetOutputFilter DEFLATE
    Options FollowSymLinks
    AllowOverride All
    Require all granted
    DirectoryIndex index.php index.html index.htm default.php default.html default.htm
</Directory>
</VirtualHost>
说明
  • [$Documentroot]为您网站的根目录。
  • [$Domain_Name]为您的域名。

相关文档

适用于

  • 云服务器ECS

如果您的问题仍未解决,您可以在阿里云社区免费咨询提交工单联系阿里云技术支持。